我实现使用一些水平轻扫分页的应用程序(向左或向右 - 水平视图分页)。我下载了“android.support.v4.view.ViewPager”,发现实行刷卡一部分的方式主要是由于本教程在这里:http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/的Android - PagerAdapter崩溃时我添加ClickListener
我的问题是,查看按钮和我刷卡的意见设置OnClickListenr。奇怪的是,虽然我可以在我的主要活动范围内做到这一点,它崩溃,当我试图从启动并带到前面的其他活动做到这一点。
虽然代码:我的主要活动
public void Settings(){
setContentView(R.layout.settings);
SettingsAdapter adapter = new SettingsAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.settingspager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(0);
View BackButton = findViewById(R.id.back);
BackButton.setOnClickListener(this);
}
工作正常,在其他活动中使用时,在“BackButton.setOnClickListener”完全相同的线路崩溃。
从日志中我得到:
02-20 09:59:50.756: E/AndroidRuntime(489): at lil.kayak.tabs.Settings$SettingsAdapter.instantiateItem(Settings.java:88)
02-20 09:59:50.756: E/AndroidRuntime(489): at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110)
02-20 09:59:50.756: E/AndroidRuntime(489): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:649)
02-20 09:59:50.756: E/AndroidRuntime(489): at android.support.v4.view.ViewPager.populate(ViewPager.java:783)
02-20 09:59:50.756: E/AndroidRuntime(489): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1016)
我的寻呼机适配器是在两种情况下:
private class SettingsAdapter extends PagerAdapter {
public int getCount() {
return 2;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.settings1;
break;
case 1:
resId = R.layout.settings2;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@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;
}
}
的settings.xml是
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.ViewPager
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/settingspager"/>
</LinearLayout>
那么问题是什么?我应该怎么做才能使它工作?先谢谢你!
编辑:我目前围绕它使用了Android的工作:的onClick = “功能” 在我的XML,然后
公共无效功能(视图v){}在我的课
它现在工作,但我不认为这是最佳的,所以任何建议都欢迎!
谢谢你的回答!我工作围绕它使用了android:的onClick =“功能”在我的XML和它的作品。但我会检查你写的东西并告知! – george 2012-02-20 13:23:04
嗯,我有一个吹气对象,我想现在据说这是“返回我们在运行的背景下,对资源的访问,类加载器,等等。” inflater.getContext()但它仍然不起作用:( – george 2012-02-23 10:47:06