处理大量onClick ID的最佳方法是什么?

时间:2014-03-09 02:23:16

标签: java android

我的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中的idonClick获取该按钮的数字(0-29)?

1 个答案:

答案 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" />