我创建了一些textViews,我想创建一个OnClickListener,以便在单击它们时返回文本。我有这样的事情:
for (int i = 0; i < json.length(); i++) {
tv1.setText("Some text");
public boolean onLongClick(View v) {
//something should go here
}
tableLayout.addView(tv1);
}
我应该怎么做,以便当我执行onLongClick时,我得到了对我正在选择的textView的引用,而不是我添加的最后一个?我不能只在onLongClick中调用tv1,因为它不是静态的..
答案 0 :(得分:0)
在TextView
上设置监听器,并使用onClick
回调的参数:
for (int i = 0; i < json.length(); i++) {
tv1.setText("Some text");
tv1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// v is the TextView that was clicked
String theText = ((TextView)v).getText().toString();
}
});
//...
答案 1 :(得分:0)
有一种技巧。如果我理解你的问题,你可以将所有动态TextView放在ArrayList中。如下所示
ArrayList<TextView> listTextView = new ArrayList<TextView>();
for (int=0; i<json.length; i++) {
TextView textView = new TextView(this);
textView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
textView.setText("Some Text");
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TextView text = (TextView) v;
String theText = text.getText().toString();
}
});
listTextView.add(textView);
}