我正嘗試使用ViewPager,用戶可以在每個窗格中進行交互。對於這個ViewPager,我創建了一個教程,讓我們向用戶展示水平滑動切換窗格。當用戶到達最後一個窗格時,會向用戶顯示一個按鈕,在這裏他們將被導航到儀表板。我已經閱讀了一些文章,試圖瞭解按鈕在ViewPager中的工作方式,但是沒有多大意義。在ViewPager中使用按鈕
代碼應該做的事情是,當點擊ViewPager中一個窗格中的按鈕時,儀表板活動就會啓動。
這裏是pagerAdapter的全碼:
class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 5;
}
public Object instantiateItem(View collection, int position) {
View v = new View(collection.getContext());
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.tutorial_step1;
break;
case 1:
resId = R.layout.tutorial_step2;
break;
case 2:
resId = R.layout.tutorial_step3;
break;
case 3:
resId = R.layout.tutorial_step4;
break;
case 4:
resId = R.layout.tutorial_complete;
v = inflater.inflate(R.layout.tutorial_complete, null, false);
LinearLayout l = (LinearLayout) v.findViewById(R.id.llComplete);
Button button=(Button)l.findViewById(R.id.bTutorialComplete);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Create an intent that starts a different activity
}
});
break;
}
((ViewPager) collection).addView(v, 0);
return v;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
從我的文章都看過,我應該與使用的代碼是:
public Object instantiateItem(View collection, int position) {
View v = new View(collection.getContext());
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.tutorial_step1;
break;
case 1:
resId = R.layout.tutorial_step2;
break;
case 2:
resId = R.layout.tutorial_step3;
break;
case 3:
resId = R.layout.tutorial_step4;
break;
case 4:
resId = R.layout.tutorial_complete;
v = inflater.inflate(R.layout.tutorial_complete, null, false);
LinearLayout l = (LinearLayout) v.findViewById(R.id.llComplete);
Button button=(Button)l.findViewById(R.id.bTutorialComplete);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Create an intent that starts a different activity
}
});
break;
}
((ViewPager) collection).addView(v, 0);
return v;
}
只有case 4:
內switch
聲明我正在處理,因爲這有一個按鈕,而其他佈局只包含圖像和文本,不需要交互。
我一直在爲此工作無數小時,仍然無法找出解決方法。如果你能幫助我,我將非常感激。
我真的不知道你的問題是。你想知道如何使用按鈕製作視圖的佈局嗎?或者你想知道如何創建一個啓動活動的意圖?或者是其他東西?代碼看起來沒問題。如果您可以提供您的佈局和任何顯示錯誤的LogCat,那麼在回答您的問題時也會有所幫助。 – louielouie 2012-03-14 05:48:43
我在switch語句中提供了佈局,但其中一個佈局有一個按鈕。我想要那個按鈕來創建一個啓動活動的意圖。我嘗試創建一個intent並在switch語句中啓動一個活動,但編譯器不接受它,它不識別這個intent參數和startActivity方法。 – kibria3 2012-03-14 11:01:18