2013-04-08 41 views
0

我有一點點複雜的問題,即我在android中實現了一個listview。一個列表項目中有近6個孩子。問題是列表itemClickListener由於其中的文字瀏覽效果不佳。我的意思是在textview上它不執行itemClickListing。所以我認爲我必須爲每個TextView單獨實現clickListeners。 現在的問題開始: ListView的itemClickListener(它是碎片類中):如何使用片段替換自定義ArrayAdapter,即getFragmentmanager()給出錯誤消息

 JournalAdapter adapter = new JournalAdapter(JournalListFragment.activity, R.layout.journal_list_items, journals); 

     ListView listView1 = (ListView)JournalListFragment.activity.findViewById(R.id.listView1); 
     listView1.setAdapter(adapter); 

     listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View view, int pos, long id) { 
       Utilities.selectedJnrlId = view.getId() ; 

       FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
       transaction.replace(android.R.id.content, new JournalAddUpdateFragment()); 
       transaction.addToBackStack(null); 
       transaction.commit(); 

      } 

     }); 

我用自定義適配器這裏。當我在listView上實現itemClickListener時;我在從Fragment類擴展的類中。所以我只是在listView-itemClickListener的結果中替換片段但是當我去其他類,即CustomArrayAdapter我不能這樣做,因爲getFragmentManager()。它給出了一個錯誤,因爲我的Custom-ArrayAdapter類確實從Fragment類擴展而來。那麼是否有任何合理的解決方案? Regards,

回答

-1

而不是使用ListView的點擊偵聽器,您可以手動將偵聽器綁定到getView()中的視圖。唯一的技巧是你需要知道什麼視圖觸發了點擊,但解決方案非常簡單 - 使用setTag(),並將其作爲標記放置,即列表視圖的行位置。然後getTag()在點擊監聽器,得到您的視圖的相應的行,並繼續

+0

使用此視圖view = getView(); view.setClickable(true); view.setOnClickListener(新OnClickListener(){ \t \t \t \t @Override \t \t \t \t公共無效的onClick(視圖v){ \t \t \t \t \t Utilities.selectedJnrlId = getView()。getId(); \t \t \t \t \t \t \t \t \t \t FragmentTransaction交易= getFragmentManager()的BeginTransaction(); \t \t \t \t transaction.replace(android.R.id.content,new JournalAddUpdateFragment()); \t \t \t \t transaction.addToBackStack(null); \t \t \t \t \t transaction.commit(); \t \t \t \t \t \t \t \t \t} \t });但現在的點擊監聽器不工作「評論第1 clicklistener」 – 2013-04-08 15:56:15

0

據我瞭解代碼沒有找到,因爲它在你的片段的子類。

這只是將編譯器指向正確的類的一個簡單問題。

你會這樣稱呼它:

MyFragment.this.getFragmentManager.beginTran... etc 
+0

沒有工作... – 2013-04-08 15:59:05

0

我其實是在textviews使用

android:textIsSelectable="true" 

。這對我造成了問題。它使textviews無法點擊。原因,我不知道。所以我

android:text="" 

取代它,也TextViews使用

android:focusableInTouchMode="false" 
android:focusable="false" 

。 在包含這些TextViews的RelativeLayout中;我用

android:descendantFocusability="blocksDescendants"> 

最後我的列表視圖成爲可點擊的,只有一個itemClickListener。沒有單獨的TextViews需要clickListeners。