Я новичок в android и java, поэтому извините, если это слишком простой вопрос, но я попытался найти решение на форумах и Google, и я не смог.
У меня есть 24 кнопки в моем макете, все эти кнопки делают что-то подобное, поэтому я хочу создать общую функцию. Но сначала мне нужно знать имя (xml id) его кнопки.
Этот XML-код кнопки:
<Button
android:id="@+id/add_04"
android:layout_width="42dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="15dp"
android:background="@xml/zbuttonshape"
android:onClick="onClick"
android:text="@string/mas" />
Я установил android: onClick = "onClick" для всех кнопок.
В моей деятельности я создал новую функцию onClick:
Этот код, который я пробовал:
public void onClick(View v) {
String name = v.getContext().getString(v.getId());
String name2 = context.getString(v.getId());
String name3 = getString(v.getId());
String name4 = getResources().getString(v.getId());
}
Но когда я пытаюсь получить имя (в данном случае "add_04" ), я всегда получаю "false".
Наконец, я нашел решение со следующим кодом:
import java.lang.reflect.Field;
String name5 = null;
Field[] campos = R.id.class.getFields();
for(Field f:campos){
try{
if(v.getId()==f.getInt(null)){
name5 = f.getName();
break;
}
}
catch(Exception e){
e.printStackTrace();
}
}
Мой вопрос: если нет более простого способа получить этот идентификатор?
Спасибо заранее.