如何在单击时获取图像按钮的ID

时间:2015-12-31 07:43:55

标签: android imagebutton

public void onClick(View v) {

    int id = v.getId();
    switch(id) {
        case R.id.a :
        String textans = ans.getText().toString();
        ans.setText(textans +id);
    }
}

我正在创建一个Android应用程序,其中我有5 ImageButton个和TextView

ImageButton有字母图像,即A,B,C,D,E,它们在XML中的ID是a,b,c,d,e如下

<ImageButton
        android:id="@+id/a"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="170dp"
        android:layout_marginLeft="18dp"
        android:src="@drawable/a" />

    <ImageButton
        android:id="@+id/b"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/imageButton5"
        android:layout_toRightOf="@+id/imageButton5"
        android:src="@drawable/b" />

    <ImageButton
        android:id="@+id/c"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/imageButton2"
        android:layout_toRightOf="@+id/imageButton2"
        android:src="@drawable/c" />

    <ImageButton
        android:id="@+id/d"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/imageButton3"
        android:layout_toRightOf="@+id/imageButton3"
        android:src="@drawable/d" />

    <ImageButton
        android:id="@+id/e"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/a"
        android:layout_toRightOf="@+id/a"
        android:src="@drawable/e" />

我想要的是当我点击ImageButton时,必须在TextView中设置相应的字母。为此,我在switch方法中使用了onClick,并倾向于获取按钮的ID并将其设置为TextView,但ID是int中的内容。

我的问题是这个&#34;如何获得点击按钮ID的名称&#34;。例如,当Iclick按钮具有图像A时,ImageButton的ID为&#34; a &#34;,因此必须将其存储在变量中,然后将其设置为{ {1}}。

希望我的问题很清楚。

1 个答案:

答案 0 :(得分:2)

如果您想将点击按钮的 ID 设置为TextView,您可以使用此类内容

String resourceName = getResources().getResourceEntryName(int resId);
  

在您的解决方案中使用

public void onClick(View v) {

    int id = v.getId();
    switch(id) {
        case R.id.a:
            String resourceName = getResources().getResourceEntryName(id);
            textView.setText(resourceName);
            break;
    }
}