0
動的なボタンを作成し、その中にクリック機能を追加しようとしています。ボタン配列の要素でgetTagメソッドを試してみました。これらのコードを実行しようとすると、アプリがクラッシュして、v.getTag()とbutton.getTag()の両方を試みました。助けてくれてありがとう。クリック方法の動的ボタンとgetTag
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testing);
//test creating of dynamic buttons
Button[] myButton = new Button[4];
LinearLayout scrViewButLay = (LinearLayout) findViewById(R.id.layout);
for (int index = 0; index < 4; index++) {
myButton[index] = new Button(this); //initialize the button here
myButton[index].setText("Button # ");
myButton[index].setTag(index);
scrViewButLay.addView(myButton[index]);
myButton[index].setOnClickListener(getOnClickDoSomething(myButton[index]));
}
}
View.OnClickListener getOnClickDoSomething(final Button button) {
return new View.OnClickListener() {
public void onClick(View v) {
button.setText("text now set.. ");
//Log.i("info",(String) button.getTag());
Log.i("info",(String) v.getTag());
}
};
}
}
LogCatエラー-----------------------------------------
Log.i("info", ""+v.getTag());
またはあなたがしたい場合は:--------------------------
com.example.mandeep.pos1_1, PID: 26112
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at com.example.mandeep.pos1_1.MainActivity$1.onClick(MainActivity.java:43)
at android.view.View.performClick(View.java:4757)
at android.view.View$PerformClick.run(View.java:19757)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5219)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
ボタンのIDを設定してみてください –
あなたはどのようなエラーが発生しましたか?あなたはスタックトレースを投稿できますか? –
ここにlogcatを投稿 –