0
我想把viwepager作爲行在listview中。它工作,我可以滾動水平和垂直。 ViewPager as listview row java.lang.IllegalArgumentException:沒有找到id爲的視圖
滾動後,我得到java.lang.IllegalArgumentException: No view found for id...
。以下是我的鱈魚和錯誤日誌。
我的適配器
private class ExpAdapter
extends CursorAdapter {
public ExpAdapter(Context context, FragmentManager mFragmentManager) {
super(context, null, 0);
this.mFragmentManager = mFragmentManager;
mInflater = LayoutInflater.from(context);
}
private FragmentManager mFragmentManager;
LayoutInflater mInflater;
private Date d = new Date();
@Override
public View newView(
Context context, Cursor cursor, ViewGroup parent
) {
ViewPager pager = (ViewPager) mInflater.inflate(
R.layout.view_pager, parent, false
);
pager.setId(R.id.viewpager_id_base + cursor.getPosition());
return pager;
}
@Override
public void bindView(
View view, Context context, Cursor cursor
) {
// make pagerCoursor
ScreenSlidePagerAdapter tempMyFriendPagerAdapter = new ScreenSlidePagerAdapter(
mFragmentManager, pagerCoursor
);
((ViewPager) view).setAdapter(tempMyFriendPagerAdapter);
}
}
XML
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="400dip"/>
錯誤
java.lang.IllegalArgumentException: No view found for id 0x7f070000 (com.yarh.bigdig.smsgreeter:id/viewpager_id_base) for fragment ScreenSlidePageFragment{41cfea70 #1 id=0x7f070000}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:939)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:447)
at com.yarh.bigdig.smsgreeter.ui.CelebrationListFragment$ExpAdapter.bindView(CelebrationListFragment.java:367)
at android.support.v4.widget.CursorAdapter.getView(CursorAdapter.java:256)
at android.widget.AbsListView.obtainView(AbsListView.java:2435)
at android.widget.ListView.makeAndAddView(ListView.java:1891)
at android.widget.ListView.fillDown(ListView.java:792)
at android.widget.ListView.fillGap(ListView.java:756)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5718)
at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4816)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:799)
at android.view.Choreographer.doCallbacks(Choreographer.java:599)
at android.view.Choreographer.doFrame(Choreographer.java:558)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:784)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5872)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
at dalvik.system.NativeStart.main(Native Method)
我認爲eror是由ID的衝突引起的,所以我試圖取代
pager.setId(R.id.viewpager_id_base + cursor.getPosition());
與
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
myView.setId(Utils.generateViewId());
} else {
myView.setId(View.generateViewId());
}
的建議here,但它告訴我immidiate resourcenofound exeption