爲此編寫標題很困難。我目前所做的是重用一個片段類來在ViewPager中創建多個ListFragments。 ListFragments的佈局都是一樣的,所以只有一個佈局和一個片段作爲基礎看起來是一個很好的選擇。 但是,我希望能夠訪問每個片段的視圖,以設置一些片段值,如標題,名稱和其他內容。我有一個問題,這是事實,每當我嘗試通過覆蓋片段的onViewCreated方法訪問一個TextView,在我看來,唯一的片段得到更新是鏈中的第一個。現在從ViewPager中的多個片段實例化訪問視圖
,我做什麼實例化和連接片段是這樣的:
private void initPager() {
mFragments = new Vector<Fragment>();
int[] listIds = 3;
for(int i = 0; i < listIds.length; i++) {
Fragment fragment = new ListsFragment(listIds[i]);
mFragments.add(fragment);
}
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
for(int i = 0; i < mFragments.size(); i++) {
fragmentTransaction.add(R.id.viewpager, mFragments.get(i));
}
fragmentTransaction.commit();
mPagerAdapter = new ListsPagerAdapter(fragmentManager, mFragments);
mPager = (ViewPager) super.findViewById(R.id.viewpager);
mPager.setAdapter(mPagerAdapter);
}
片段onViewCreated()的代碼是這樣的:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
TextView textListTitle = (TextView) getActivity().findViewById(R.id.text_list_title);
String title = "test";
textListTitle.setText(listTitle);
}
當在日誌中尋找我看到每一個片段被分開實例化,逐一經歷每個生命週期。但是,獲得「測試」字符串的唯一片段是第一個。
我錯過了什麼?
沒有理由在這裏使用'Vector' ...只是使用'ArrayList' :) – 2012-07-25 02:59:19
另外...這將不會編譯:'int [] listIds = 3;'...所以我老實說不知道大聲笑 – 2012-07-25 03:03:20