Android onClickListener 没有 xml

标签 android button onclick onclicklistener android-gridlayout

这是我的代码:

...
setContentView(R.layout.activity_main);
        myGrid= (GridLayout) findViewById(R.id.gridlayout);
        myGrid.setColumnCount(3);
        myGrid.setRowCount(5);

        ImageButton a1 = new ImageButton(this);
    ImageButton a2 = new ImageButton(this);
    myGrid.addView(a1);
    myGrid.addView(a2);
    a1.setOnClickListener(this);
    a2.setOnClickListener(this);
...

我需要在onClick方法中写什么?我希望如果我按下按钮“a1”,它会执行某些操作,如果我按下按钮“a2”,它会执行其他操作。

public void onClick(View a) {


 I can't use "if (a.getId == buttonID)" , because my buttons haven't ID.
    }

在简单的 Java 中,它就像 if((a.getSource() == button1)),但我不知道它在 Android 中是什么样子。

最佳答案

在Android中,您需要重写监听器中的onClick方法:

a1.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View view){
       // do something
   }

});

或者为两个按钮创建一个自定义监听器,您将在其中检查单击了哪个 View :

myOnClickListener = new OnClickListener(){
    @Override
    public void onClick(View view){
        if (view == a1){
           // do what a1 should do
        } else if (view == a2) {
           // do what a2 should do
        }
    }
};

并将其附加到两个按钮:

a1.setOnClickListener(myOnClickListener);
a2.setOnClickListener(myOnClickListener);

关于Android onClickListener 没有 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894986/

相关文章:

android - 是否有可以从开发的应用程序直接连接的心率追踪器?

android - Intent 发送不是 Intent 接收

android - Kotlin - 使用 Persistence Room :runtime lib 从 Room 数据库返回新插入的 id

javascript - HTML 按钮的点击计数器

javascript - 如何触发选中所有复选框?

Javascript - 如何阻止 onClick 清除表单/刷新页面?

android - Xamarin 通用图像加载器内存不足异常

C# 按钮点击

android - 在相对布局中格式化按钮大小

php - javascript 在 onclick 处包含文件