Как добавить динамический textview и ontouchlistners для Android
Я создал 5 текстовых представлений, теперь я хочу знать, какое текстовое представление было затронуто. Я сделал Touchlistner, но он ссылается только на последний... PLZ, направьте меня.
final LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout1);
for(int i=0; i< 5;i++){
tv = new TextView(this);
tv.setTextSize(90);
tv.setId(i);
tv.setText("Text");
tvlist.add(tv);
ll.addView(tv, i);
}
tv.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Log.i("TAG", "touchdown" + Integer.toString(v.getId()));
Log.i("TAG", "touchdown 2" + tvlist.get(v.getId()));
return false;
}
});
2 ответа
Используйте это так и для лучшей обработки textview вы должны пойти на массив TextView
for(int i=0; i< 5;i++){
tv = new TextView(this);
tv.setTextSize(90);
tv.setId(i);
tv.setText("Text");
tvlist.add(tv);
ll.addView(tv, i);
tv.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Log.i("TAG", "touchdown" + Integer.toString(v.getId()));
Log.i("TAG", "touchdown 2" + tvlist.get(v.getId()));
return false;
}
});
}
Вы также можете использовать следующее:
TextView tv=new Textview[5];
int txtid =0;
for(int i=0; i< 5;i++){
tv = new TextView(this);
tv[i].setTextSize(90);
tv[i].setId(i);
tv[i].setText("Text");
tv[i].setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
txtid = tv[i].getId();
return false;
}
});
}
ll.addView(tv);