2012-03-27 31 views
1

我想用新片段替換包含項目列表的片段,具體取決於所單擊的項目。這是我的代碼,我該如何處理這個問題?我應該在onCreateView還是onActivityCreated中聲明我的ListView,Adapter等?容器是一個ViewPager,如果這有所作爲。使用ViewPager作爲容器替換片段onItemClick

public class PreferenceListFragment extends SherlockFragment 
{ 
    ListView lv; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     return (LinearLayout)inflater.inflate(R.layout.settings, container, false); 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     lv = (ListView)getView().findViewById(R.id.SettingsLV); 
     lv.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, Preferences.TITLES)); 
     lv.setOnItemClickListener(new OnItemClickListener() 
      { 
       @Override 
       public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
        Log.i("FragmentList", "Item clicked: " + arg2); 
        // Switch case that starts fragment depending on 'position'. 

        Fragment1 f1 = new Fragment1(); 
        FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); 
        ft.replace(R.id.pager, f1); 
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
        ft.addToBackStack(null); 
        ft.commit();  
       } 
      } 
     ); 
    } 
} 

鏈接到一些非常weird behaviour from my app

+0

您的問題不在片段中,而是在ViewPager中。這個問題可能會幫助你:http://stackoverflow.com/questions/7723964/replace-fragment-inside-a-viewpager – 2012-04-26 11:53:29

回答

0

適配器和列表視圖的設置應該在onActivityCreated中完成。 OnCreateView只是第一次繪製用戶界面。處理應該在onActivityCreated()中。請參考http://developer.android.com/guide/topics/fundamentals/fragments.html

+0

我很害怕你會這麼說。我編輯了我原來的帖子,以反映我最初的代碼。它繪製列表視圖,但點擊一個項目不會相應地採取行動。 – CodePrimate 2012-03-27 10:44:20

+0

你的意思是說Fragment1在ItemClick上沒有啓動? – user936414 2012-03-27 10:50:07

+0

這是發生了什麼事:1.我點擊一個項目 - >沒有任何反應。 2->我再次點擊一個項目 - >列表動畫出來,出現黑屏而不是列表(應該開始的片段是粉紅色的)。我編輯了我的原始問題,以顯示正在發生的視頻。但告訴我,我的代碼似乎是正確的嗎? – CodePrimate 2012-03-27 10:56:55