我正在開發一個應用程序,它由具有三個片段的FragmentActivity組成。我想從第一個片段到第三個片段,最後一個片段用「下一個」按鈕。爲此,我使用viewPager和pagerAdpater(我禁用了viewpager上的分頁/划動)。我的「下一個」按鈕已經在他們自己的片段中實現。我有一個xml佈局的每個片段和一個fragmentActivity包含viewpager。onClickListener(按鈕)使用片段切換ViewPager的視圖
我想使用一個OnClickListener,我可以使用setCurrentItem(index)方法,並從第一個視圖到最後一個視圖。
問題是,我不知道我可以把OnClickListener放在哪裏,因爲我沒有我的片段中的viewpager引用。
如何在我的片段中獲得viewpager引用?我必須把我的OnClickListener方法放在別的地方嗎?
這裏是我的3個片段之一的代碼:
public class InitializationStep1 extends Fragment{
private PagerAdapter mPagerAdapter;
CustomViewPager pager;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = (LinearLayout)inflater.inflate(R.layout.initialization_step1_layout, container, false);
Button button = (Button) v.findViewById(R.id.goToStep2);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
CustomViewPager pager = (CustomViewPager) v.findViewById(R.id.viewpager);
if(pager == null)
System.out.println("It's null..."); // always getting a null value
else
pager.setCurrentItem(0);
}
});
return v;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
setUserVisibleHint(true);
}
}
,這是我FragmentActivity:
public class Initialization extends FragmentActivity{
private PagerAdapter mPagerAdapter;
CustomViewPager pager;
Button b1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.viewpager_initialization_layout);
//initialize the pager
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, InitializationStep1.class.getName()));
fragments.add(Fragment.instantiate(this, InitializationStep2.class.getName()));
fragments.add(Fragment.instantiate(this, InitializationStep3.class.getName()));
this.mPagerAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
pager = (CustomViewPager)super.findViewById(R.id.viewpager);
pager.setPagingEnabled(false);
pager.setAdapter(this.mPagerAdapter);
pager.setCurrentItem(0);
}
}
總結這一切,我有:
- 實施3個片段(1,2和3)
我希望得到:
- 每個片段包含一個按鈕以進入下一個片段(1→2→3)。
- 包含「完成」按鈕,最後一個片段(因爲沒有下一個片段 - 導航到)
我認爲這是一個很簡單的動作,但我在Android開發相對較新,不能想出解決辦法。我可能試圖用錯誤的組件來做到這一點。
謝謝
工作......... –