单击时如何获取图像按钮的ID
How to get ID of imagebutton when it is clicked
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
s 有字母图像,即 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
中。为此,我在 onClick
方法中使用了 switch
并倾向于获取按钮的 ID 并将其设置在 TextView
中,但 id 是 int
中的内容。
我的问题是 "How can I get the name of the ID of button clicked"。例如当我点击按钮有图片A时,ImageButton
的id是“a”,所以它必须存储在一个变量中然后设置为TextView
.
希望我的问题很清楚。
如果你想将点击按钮的 ID 设置为你的 TextView
你可以使用这样的东西
String resourceName = getResources().getResourceEntryName(int resId);
Use in your solution
public void onClick(View v) {
int id = v.getId();
switch(id) {
case R.id.a:
String resourceName = getResources().getResourceEntryName(id);
textView.setText(resourceName);
break;
}
}
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
s 有字母图像,即 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
中。为此,我在 onClick
方法中使用了 switch
并倾向于获取按钮的 ID 并将其设置在 TextView
中,但 id 是 int
中的内容。
我的问题是 "How can I get the name of the ID of button clicked"。例如当我点击按钮有图片A时,ImageButton
的id是“a”,所以它必须存储在一个变量中然后设置为TextView
.
希望我的问题很清楚。
如果你想将点击按钮的 ID 设置为你的 TextView
你可以使用这样的东西
String resourceName = getResources().getResourceEntryName(int resId);
Use in your solution
public void onClick(View v) {
int id = v.getId();
switch(id) {
case R.id.a:
String resourceName = getResources().getResourceEntryName(id);
textView.setText(resourceName);
break;
}
}