变量OnClick Listener Android

时间:2010-06-25 18:38:25

标签: android onclick

有没有办法让1个onClick Lister用于许多按钮,我可以根据点击的按钮抛出case语句来做事情。

我知道我可以为100个按钮制作100个不同的听众,但我必须认为我可以用更少的代码行创建一些漂亮的变量。

4 个答案:

答案 0 :(得分:6)

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
        }
    }
};

答案 1 :(得分:1)

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

void onClick(View v) {
    switch(v.getId()) {
        case R.id.button1:
            //do something fantastic;
            break;
    }
}

答案 2 :(得分:0)

public class MainActivity extends Activity implements View.OnClickListener{

btnXXX.setOnClickListener(this);

public void onClick(View v) {
    if (v.getId()==R.id.btnXXX){
        dialog.show();
    } else {
        handleOtherViews(v);
    }
}

答案 3 :(得分:0)

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

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