2011-10-23 56 views
1

,因爲我需要顯示的不僅僅是Fragment中的列表。 所以我選擇片段,而不是ListFragment,和我的佈局是什麼樣子在ListView中的Android自定義行無法接收onItemClick

<linearlayout...> 
    <TextView...>...<TextView/> 
    <Button...>...<Button/> 
    <ListView android:id = "@"+id/mylist" ...></ListView> 
</linearylayout> 

我implemnt「MyAdapter」延伸BaseAdapter,其中有getView像下面

@Override 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    if(position == 0) 
    { 
     return categroyView("Team leader"); 
    } 
    else if (position == 2) 
    { 
     return categroyView("Team memebers"); 
    } 
    else 
    { 
     LayoutInflater inflater = context.getLayoutInflater(); 
     View v = inflater.inflate(R.layout.row_group, null, false); 
     return v; 
    } 
} 


protected View categroyView(String text) 
{ 
    TextView txtView = new TextView(context); 
    txtView.setText(text); 
    return txtView; 
} 

事實證明,我可以當它的位置是0或2時(這可以看到我動態生成textView。 同時當它的位置不是0或2(我從XML返回充氣視圖時)我無法接收onItemClick

我見過一些關於如果自定義的行佈局有一些可點擊的項目(如按鈕)的討論,這種情況會發生,但即使我的行佈局只有一個textView,它仍然無法接收onItemClick。

p.s.

  1. 此外,我選擇Fragment而不是Activity來處理其他其他設計問題。
  2. 我知道我也可以在getView中添加v.setOnClickListene來幫助解決這個問題,但是如果我按下它,那麼該項目將不會突出顯示。

回答

1

什麼是位置兩視圖?如果這件事可能能夠把重點放在坐下將做它,而不是列表項,如果你不想要的內部clickabke然後禁用它的點擊,它會被傳遞到項目

也是這些長名單?如果你膨脹很多,你會遇到麻煩

+0

啊,這完美的作品!你拯救我的一天!謝謝dten!不,這不會很長。遇到麻煩意味着什麼?因爲我有其他listview有長列表...(但我使用viewholder重用視圖,是解決你的問題?) – Nohappy

+0

嗯主要是:-)我發現的問題是長列表,有多種佈局,因爲轉換視圖不斷變化。如果你現在沒有問題,它會很好 - 可能 – dten

+0

如果佈局(XML)沒有改變,該怎麼辦?我只是重複使用相同的佈局frome XML?這仍然會導致同樣的問題? – Nohappy