动态地将监听器添加到按钮

时间:2014-02-17 16:01:11

标签: android button android-intent

在我的Activity我有50个按钮,点击每个按钮我想启动相同的Activity

我想避免为每个按钮设置监听器和意图。 这样做有诀窍吗?

这是我只用于一个Button的听众:

uno = (Button) findViewById(R.id.Button07);
        uno.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {

                    Intent activityChangeIntent = new Intent(MainActivity.this, Interno.class);

                    MainActivity.this.startActivity(activityChangeIntent);
                }
            });

3 个答案:

答案 0 :(得分:1)

您可以添加

<Button
...
android:onClick="onClick" />

在XML布局上,每个按钮。并在你的班级中有一个方法

public void onClick(View v)
{
}

答案 1 :(得分:0)

Button[] buttons = new Button[SIZE];
for(int i=0; i<some_value; i++) {    
    String buttonID = "btn" + i ;  //THE ID OF YOUR BUTTON
    int resID = getResources().getIdentifier(buttonID, "id", "com.sample.project");  //PLEASE CHANGE WITH YOUR PROJECT NAMESPACE
    buttons[i] = ((Button) findViewById(resID));
    buttons[i].setOnClickListener(this);      
}

您可以循环覆盖按钮,按字符串名称查找并添加侦听器。这里的按钮存储在一个数组......

答案 2 :(得分:0)

在xml文件中的每个按钮对象上添加如下属性:

<Button android:onClick="clickMe" />

现在将此方法添加到Activity.java块:

public void clickMe(View v){
  //TODO something
}

祝你好运。