以编程方式设置Button ID

时间:2013-02-11 08:30:07

标签: android button

Android 2.3.3

我有一个包含N行和N列的表。对于每一行,我应该动态添加4个按钮,然后根据单击的按钮执行操作。我知道我们可以使用button.setID()设置整数值的按钮ID,但我想知道我们是否可以将ID设置为我们在XML文件中设置的字符串值,例如btnXYZ1和{{1}等等,

6 个答案:

答案 0 :(得分:10)

您可以为此目的使用标签。例如

btn.setTag("btXYZ");

答案 1 :(得分:2)

for (int i=0;i<nob;i++) {
     Button btn = new Button(this);
     btn.setId(i+1);
     btn.setText("Button"+(i+1));
     btn.setOnClickListener(btnclick); <<<<<<<set click
     btn.setLayoutParams(lprams);
     dynamicview.addView(btn);
}

并在任何方法和类

之外添加此列表器
OnClickListener btnclick = new OnClickListener() {

    @Override
    public void onClick(View view) {

        switch(view.getId()) {
            case 1:
                //first button click
                break;
                //Second button click
            case 2:
                break;
            case 3:
                //third button click
                break;
            case 4:
                //fourth button click
                break;
             .
             .
             .
            default:
                break;
        }
    }
};

答案 2 :(得分:2)

您在XML文件中使用的字符串对应于R.java中的int,因此实际上是整数。 setId()方法只接受int值作为参数。您可以在常量文件中定义ID,例如:

public class Ids {
    public static final int ID_ONE = 1;
}

然后将其用作:

button.setId(Ids.ID_ONE);

答案 3 :(得分:0)

不,您无法将其设置为String,ID为int值,即使您从XML设置它,它只是int值的资源名称

答案 4 :(得分:0)

不,你不能将它设置为String,id是int值,即使你从XML设置它只是int值的资源名称

答案 5 :(得分:0)

如果你有对视图的引用,你可以简单地将它们全部保存到HashMap中,例如使用HashMap。

另一种替代方法是避免任何拼写错误,即使用枚举作为hashMap的键,例如:HashMap。