1)你应该先让你的TextViews点击:
for (int i = 0; i < 20; i++) {
TextView dynaText = new TextView(this);
dynaText.setText("Some text " + i);
dynaText.setTextSize(30);
dynaText.setTag("" + i);
dynaText.setClickable(true);//make your TextView Clickable
dynaText.setOnClickListener(btnClickListener);
// Set the location of your textView.
dynaText.setPadding(0, (i * 30), 0, 0);
containerLayout.addView(dynaText);
}2)修改您的onClickListener:
OnClickListener btnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("btnClickListener", ""-----TextView Clicked : "+v.getTag());
Toast.makeText(YourActivity.this, "TextView Clicked : "+v.getTag(),
Toast.LENGTH_SHORT).show();
}
};编辑:您正在将TextViews添加到一个。这就是为什么click事件会在最后添加的事件中触发。
尝试将LinearLayout与android:orientation="vertical"一起使用,或尝试添加前一个新的TextView:
for (int i = 0; i < 20; i++) {
TextView dynaText = new TextView(this);
dynaText.setText("Some text " + i);
dynaText.setId(i+1);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
if(i!=0)
params.addRule(RelativeLayout.BELOW, i);
dynaText.setLayoutParams(params);
dynaText.setTextSize(30);
dynaText.setTag("" + i);
dynaText.setOnClickListener(btnClickListener);
containerLayout.addView(dynaText);
}