我的Android应用程序就像一个遥控器,因此有30个按钮,其中包含30个唯一ID,如下所示:
android:id="@+id/button0"
android:id="@+id/button1"
.
.
.
android:id="@+id/button29"
我想减少我必须做的非常大的switch语句。除了使用下面的switch语句来处理每个按钮的onClickListener
之外,还有其他方法吗?
public void onClick(View v)
{
switch (v.getId())
{
case R.id.button0:
myFunction(0);
break;
case R.id.button1:
myFunction(1);
break;
.
.
.
case R.id.button29:
myFunction(29);
break;
}
}
在我的无知中,我试着做下面的事情:
String id = Integer.toString(v.getId());
id.replace("button", "");
int buttonNum = Integer.getInteger(id);
myFunction(buttonNum);
但现在我发现v.getId();
不会返回button0
。是否可以从View
中的id
或onClick
获取该按钮的数字(0-29)?
答案 0 :(得分:1)
尝试使用set tag属性并在特定按钮id处获取标记(按钮编号)的值。喜欢
String id = Integer.toString(v.getTag());
myFunction(id);
and in XML
<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lineSpacingExtra="5sp"
android:text="AAAAAA"
android:tag="1"
android:textColor="@android:color/white"
android:textSize="16sp" />