Android : ImageView getID(); returning integer

Viewed 43347

I've set up an onTouch class to determine when one of my 40 buttons is pressed.

The problem I am facing is determining which button was pressed.

If I use:

int ID = iv.getId();

When I click on button "widgetA1"

I receive the following ID:

2131099684

I would like it to return the string ID "widgetA1"

from:game.xml

<ImageView android:layout_margin="1dip" android:id="@+id/widgetA1" android:src="@drawable/image" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>

from:game.java

public boolean onTouch(View v, MotionEvent event) {
  ImageView iv = (ImageView)v;
  int ID = iv.getId();
  String strID = new Integer(ID).toString();
  Log.d(TAG,strID);

  //.... etc

 }

+-+-+-+-+-+-

I other wise works fine, it knows what button you are pressing. I am quite new to this Android JAVA. Let me know if you guys can help me.

7 Answers

i think that you can use this try it

 ImageView imgView = new ImageView(this);
String imgName = "img"//in your case widgetA1
int id = getResources().getIdentifier(imgName, "drawable", getPackageName());

For the implementation you could use the hint attribute to store the button name, which is accessible. For example in the button code (.xml file) use the following line:

android:hint="buttonName"

Then in the onClicked function (.java file), write the following to get the hint:

String hint = ((Button)v).getHint().toString(); //v is the view passed onClick
Related