1

从这张图片中可以看出,我以键盘样式的方式设置了多个按钮。我在 xml 中的每个按钮的 onClick 都指向我的 btnKeyPress 方法。我计划为此方法设置一个开关/案例,但想知道 v.getId 是否是一种非常传统的区分按下哪个按钮的方法,并想知道是否有更好的方法。我主要担心无论应用程序在哪部手机上运行,​​v.getId 是否会根据我的日志发生变化或保持不变。

截屏

例如:这是我的 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());
}
4

1 回答 1

2

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

switch (v.getId()) {
    case R.id.btnKeySpace:
    break;
    case R.id.btnKeyBackspace:
    break;
    // ...
}
于 2013-10-27T10:48:41.153 回答