2013-03-18 261 views
2

的阵列我有一个动态产生的textviews
机器人,setonclicklistner动态生成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]); 
} 

的阵列现在我有一个活动,其中有许多textviews的。我需要将onclick listner功能添加到所有textviews。

<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 file.After的onclicklistner说我实现了onclicklistner接口


    public void onClick(View v) { 
     // TODO Auto-generated method stub

switch(v.getId()) 
    { 
    case R.id. <-- ? 
    } 

}} 

我怎么能匹配,以它已经指的哪个TextView的ID?

请帮忙。

回答

3

只需拨打setOnClickListener(OnClickListener)然后在您的每个TextView s。

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(listener); 
    ((LinearLayout) linearLayout).addView(textViewArray[i]); 
} 
1

不必使用R.id.xxx,只需使用您在循环用同一个号码:

switch(v.getId()) 
{ 
case 0: 
case 1: 
//etc 
}