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