我想实现 ViewPager 来把俩个view结合在一个activity中,但是当我在inflated views里使用findViewById来访问item时, 现在遇到的错误是NullPointerException。
自定义的 page adapter:
public class CustomPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return 2;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((View) object);
}
@Override
public void destroyItem(View view, int value, Object object) {
((ViewPager) view).removeView((View) object);
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public Object instantiateItem(View collection, int position) {
LayoutInflater layoutInflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resultId = 0;
switch (position) {
case 1:
resultId = R.layout.layout2;
break;
case 0:
default:
resultId = R.layout.layout1;
break;
}
View view = layoutInflater.inflate(resultId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
}
activity 如下,我想访问 layout1 中的 button ,但是给出 null 值。
public class PageSwiperActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpagerlayout);
Button myButton=(Button) findViewById(R.id.myButton);
}
}
viewpagerlayout.xml
<android.support.v4.view.ViewPager
android:id="@+id/viewPagerLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
layout1.xml包含一个按钮。 请指点一二,谢谢!