我有一个动态生成的textviews数组
for(int i = 0; i < blog_link_counter; i++) {
textViewArray[i] = new TextView(this);
textViewArray[i].setText(Html.fromHtml(array_blog_text[i]+"<br>"));
textViewArray[i].setId(i);
textViewArray[i].setOnClickListener(this);
((LinearLayout) linearLayout).addView(textViewArray[i]);
}
现在我有一个Activity,其中有很多textview。我需要在所有文本视图中添加onclick listner功能。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@+id/info"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#FFFFFF" />
我在java文件中添加了onclicklistner。之后我实现了onclicklistner接口
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id. <-- ?
}
}}
我如何匹配它所引用的Textview ID?我的意思是如果id是静态的我可以像R.id.idfromxmlfile那样做,但在这种情况下我该怎么办?
请帮助
答案 0 :(得分:2)
你没有 使用R.id.xxx
,只需使用你在循环中使用的相同数字:
switch(v.getId())
{
case 0:
case 1:
//etc
}
答案 1 :(得分:0)
View.setTag()函数更适合此。设置标记而不是设置ID
// Use .setTag
textViewArray[i].setTag(new Integer(i));
然后,您可以通过调用.getTag()
来检索视图Integer tag = (Integer) v.getTag();
switch(tag)
{
case 0:
case ...:
case blog_link_counter - 1:
}