我想用新片段替換包含項目列表的片段,具體取決於所單擊的項目。這是我的代碼,我該如何處理這個問題?我應該在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。
您的問題不在片段中,而是在ViewPager中。這個問題可能會幫助你:http://stackoverflow.com/questions/7723964/replace-fragment-inside-a-viewpager – 2012-04-26 11:53:29