巧みにandroid setTag()
1061 ワード
これは何の役にも立たないと思っていましたが、使えるだけでちょうどいいです.
一つのプログラムの中にはbuttonがたくさんあります.一つクリックして現れたいです.1クリックして2番目に現れたいです.
上のコードは効率が悪く、どちらをクリックしても21が現れます.もちろんこれは私の論理的な間違いです.
どうやって実現するの?
これでインスタンスについてlistenerと言いますが、tagを介して値を渡すのはすべてのインスタンスではありません.
一つのプログラムの中にはbuttonがたくさんあります.一つクリックして現れたいです.1クリックして2番目に現れたいです.
for (int i = 0; i < 20; i++) {
cells[i] = (ImageView) findViewById(cellIDs[i]);
cells[cellnumber++].setOnClickListener(new OnClickListener() {
public void onClick(View v){
cellClicked(cellnumber, v);
}
});
}
上のコードは効率が悪く、どちらをクリックしても21が現れます.もちろんこれは私の論理的な間違いです.
どうやって実現するの?
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
int cellId = (Integer) v.getTag();
cellClicked(cellId, v);
}
}
View v;
for (int i = 0; i < 20; i++) {
v = findViewById(cellIDs[i]);
v.setOnClickListener(listener);
v.setTag(i);
}
これでインスタンスについてlistenerと言いますが、tagを介して値を渡すのはすべてのインスタンスではありません.