私はAndroidプロジェクトに非常に奇妙な問題があります。私はボタンの2次元配列を持っているし、それらにアクションリスナーを追加しようとしています。だから、これは私が持っているものです。多くのボタンにリスナーを追加リソース
for (i = 0; i<buttons.length;i++)
{
for (k = 0; k<buttons[i].length;k++)
{
String but = "mtp" + i + k;
buttons[i][k] = (Button)v.findViewWithTag(but);
if (k%2 == 0)
{
buttons[i][k].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
text.setText(words[w]);
w++;
}
});
}
else
{
buttons[i][k].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int res = getResources().getIdentifier(icons[p],"drawable", getPackageName());
buttons[i][k].setBackgroundResource(res);
p++;
}
});
}
}
}
奇妙なことは、私の最初のアクションリスナーが正常に動作していることです。これは、TextViewを正しく変更します。しかし、2番目のアプリケーションがクラッシュします。さらに、ループ内ではなくアクションリスナーを設定すると、次のようになります。
buttons[0][1].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int res = getResources().getIdentifier(icons[p],"drawable", getPackageName());
buttons[0][1].setBackgroundResource(res);
p++;
}
});
これはうまく動作します。 私は何をしますか?どうすればこの問題を解決できますか?
あなたの質問を理解するのは難しいです,,,,,実際に何をしたいですか? –
LOGCATを表示できますか? –
クラッシュのスタックトレースを表示します。また、既にボタンの2D配列を持っている場合、なぜ 'findViewWithTag'でそれらを見つける必要がありますか? – kabuko