繁体   English   中英

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

[英]Best way to handle large number of onClick ids?

我的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 是否可以从ViewonClick id获取按钮的编号(0-29)?

尝试使用set tag属性,并在特定按钮id处获取tag(按钮编号)的值。 喜欢

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM