0
在ViewPager
將當前片段更改爲下一個或上一個片段之前,必須通過調用定製Fragment
的方法來完成驗證。要做到這一點,我可以保留每個片段的引用,或者通過標籤查找它們。下面的代碼:使用FragmentPagerAdapter時維護片段引用或按標籤查找
//=== Inside Activity ===//
Fragment fragments[] = new Fragment[5]
@Override
protected void onCreate(Bundle savedInstanceState) {
// .. init code
fragments[0] = new FragmentA();
fragments[1] = new FragmentB();
// ... same for 5 fragments in this particular case
}
private void validateFragmentBeforeMovingToNextOrPrevious(int position) {
((MyValidationFragment)fragments[position]).validate();
}
//=== inside FragmentPagerAdapter ===//
@Override
public Fragment getItem(position) {
return fragments[position];
}
對戰
//=== inside Activity ===//
private void validateFragmentBeforeMovingToNextOrPrevious(int position) {
Fragment fragment = getSupportFragmentManager().findFragmentByTag(
"android:switcher:" + viewPager.getId() + ":" +
fragmentPagerAdapter.getItemId(position));
((MyValidationFragment)fragment).validate();
}
//=== inside FragmentPagerAdapter ===//
@Override
public Fragment getItem(position) {
switch(position) {
case 0: return new FragmentA();
case 1: return new FragmentB();
// ... etc...
}
}
我喜歡你的建築,我正在做這件事。謝啦! –
很高興我能幫到你! – curtisLoew
快速問題,爲什麼'SparseArray'而不是'ArrayList'? –