区分用于指向单个方法的按钮的android按钮数组中的哪个android按钮

时间:2013-10-27 10:46:18

标签: java android xml eclipse adt

从图中可以看出,我有多个按键设置的按钮。我有每个按钮的onClick in xml指向我的btnKeyPress方法。我打算为这个方法设置一个开关/盒子,但是想知道v.getId是否是一种非常传统的方法来区分按下哪个按钮并想知道是否有更好的方法。我主要担心的是v.getId是否会根据我的日志改变或保持不变,无论应用程序运行在哪个手机上。

screenshot

例如:这是我的Space和Backspace键的XML属性

        <Button
            android:id="@+id/btnKeySpace"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="25"
            android:onClick="btnKeyPress"
            android:text="Space" />

        <Button
            android:id="@+id/btnKeyBackspace"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="75"
            android:onClick="btnKeyPress"
            android:text="Bkspc" />

这就是所谓的

public void btnKeyPress(View v){
    System.out.println(v.getId());
}

1 个答案:

答案 0 :(得分:2)

v.getId()将始终返回布局xml中的android:id集。所以是的,如果你使用它来识别按钮,你就不会遇到问题.-

switch (v.getId()) {
    case R.id.btnKeySpace:
    break;
    case R.id.btnKeyBackspace:
    break;
    // ...
}