2013-03-18 260 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 
}