私はアンドロイドとジャバに慣れていないので、それがあまりにも基本的な質問であるならば申し訳ありませんが、私はフォーラムとグーグルで解決策を見つけようとしました、そして私はできませんでした。
レイアウトに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();
}
}
私の質問は、このIDを取得する簡単な方法がないかどうかです。
前もって感謝します。