mse*_*seo 46 android button clicklistener
我发现自己总是这样做:
Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
Button button3 = (Button) findViewById(R.id.button3);
button1.setOnClickListener(menuButtonListener);
button2.setOnClickListener(menuButtonListener);
button3.setOnClickListener(menuButtonListener);
...
Run Code Online (Sandbox Code Playgroud)
和
private OnClickListener myButtonListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button1 :
...
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来设置OnClickListener?
apr*_*ock 59
您还可以使用android:onclick属性在布局xml中设置它.
android:onClick="onClick"
Run Code Online (Sandbox Code Playgroud)
然后在您的activity类中添加onClick方法.
public void onClick(View v) {
...
Run Code Online (Sandbox Code Playgroud)
这是文档.
小智 35
让你的类实现`View.OnClickListener',就像
public class MyActivity extends Activity implements View.OnClickListener {
Button button1, button2, button3;
@Override
public void onCreate(Bundle bundle) {
super.onCreate();
...
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.button1:
// do stuff;
break;
case R.id.button2:
// do stuff;
break;
...
}
}
Run Code Online (Sandbox Code Playgroud)
Gettin @foenix回答,你可以简单地做一些事情:
int[] buttons = {R.id.button1, R.id.button2, R.id.button3, R.id.button4, R.id.button5, R.id.button6, R.id.button7
, R.id.button8, R.id.button9};
for (int i = 0; i < buttons.length; i++) {
Button buttonNum = (Button) rootView.findViewById(buttons[i]);
buttonNum.setOnClickListener(doSomething);
}
private OnClickListener doSomething= new OnClickListener() {
@Override
public void onClick(View v) {
//doSomething
}
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
73088 次 |
最近记录: |