Android 变量OnClick侦听器

Android 变量OnClick侦听器,android,onclick,Android,Onclick,有没有一种方法可以让多个按钮都有一个onClick列表器,我可以根据单击的按钮抛出一个case语句来执行操作 我知道我可以为100个按钮创建100个不同的监听器,但我必须认为我可以创建一些漂亮的变量,用更少的代码行来实现这一点。如果您使用的是SDK的1.6+版本,则可以使用它来设置视图的onClick处理程序。在活动中,您必须有一个具有以下签名的方法。视图是已单击的视图 Button btn1, btn2; public void onCreate(Bundle b) { // here

有没有一种方法可以让多个按钮都有一个onClick列表器,我可以根据单击的按钮抛出一个case语句来执行操作


我知道我可以为100个按钮创建100个不同的监听器,但我必须认为我可以创建一些漂亮的变量,用更少的代码行来实现这一点。

如果您使用的是SDK的1.6+版本,则可以使用它来设置视图的onClick处理程序。在活动中,您必须有一个具有以下签名的方法。视图是已单击的视图

Button btn1, btn2;
public void onCreate(Bundle b)
{
    // here you do normal things like assigning a
    // content view to the activity, initiate buttons, etc.

    // then you assign the same listener to both buttons
    btn1.setOnClickListener(yourListener);
    btn2.setOnClickListener(yourListener);
}

// declare a OnClickListener that will execute different actions
// depending on the view that was clicked
View.OnClickListener yourListener = new View.OnClickListener(){
    public void  onClick  (View  v){
        if( v == btn1 ){
            // do something 
        }
        elseif( v == btn1 ){
            // do another thing
        }
    }
};
void onClick(View v) {
    switch(v.getId()) {
        case R.id.button1:
            //do something fantastic;
            break;
    }
}

或者,您可以指定要在xml中调用的方法:

<Button android:id="@id/button" android:text="@string/button" android:onClick="someMethod" />

<Button android:id="@id/button" android:text="@string/button" android:onClick="someMethod" />