这是我的代码:
...
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/