日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android设置错误页面,Android ViewPager设置当前项目/页面时抛出IndexOutOfBounds异常

發布時間:2025/3/12 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android设置错误页面,Android ViewPager设置当前项目/页面时抛出IndexOutOfBounds异常 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有一個ViewPager有三個項目.我試圖設置ViewPager查看最右邊的頁面(這將是第二個元素).這是返回IndexOutOfBounds異常,雖然我知道索引應該在邊界.這是確切的堆棧:

02-22 12:22:50.256: E/AndroidRuntime(384): FATAL EXCEPTION: main

02-22 12:22:50.256: E/AndroidRuntime(384): java.lang.IndexOutOfBoundsException: index=1 count=0

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addInArray(ViewGroup.java:2050)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addViewInner(ViewGroup.java:1994)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addViewInLayout(ViewGroup.java:1958)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addViewInLayout(ViewGroup.java:1939)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.support.v4.view.ViewPager.addView(ViewPager.java:917)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addView(ViewGroup.java:1828)

02-22 12:22:50.256: E/AndroidRuntime(384): at us.tagverse.pagertest.MasterActivity$PAdapter.instantiateItem(MasterActivity.java:518)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:649)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.support.v4.view.ViewPager.populate(ViewPager.java:783)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1016)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.View.measure(View.java:8313)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.View.measure(View.java:8313)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.View.measure(View.java:8313)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.View.measure(View.java:8313)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewRoot.performTraversals(ViewRoot.java:839)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.os.Handler.dispatchMessage(Handler.java:99)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.os.Looper.loop(Looper.java:123)

02-22 12:22:50.256: E/AndroidRuntime(384): at android.app.ActivityThread.main(ActivityThread.java:3683)

02-22 12:22:50.256: E/AndroidRuntime(384): at java.lang.reflect.Method.invokeNative(Native Method)

02-22 12:22:50.256: E/AndroidRuntime(384): at java.lang.reflect.Method.invoke(Method.java:507)

02-22 12:22:50.256: E/AndroidRuntime(384): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)

02-22 12:22:50.256: E/AndroidRuntime(384): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)

02-22 12:22:50.256: E/AndroidRuntime(384): at dalvik.system.NativeStart.main(Native Method)

注意原因是java.lang.IndexOutOfBoundsException:index = 1 count = 0.這意味著頁/項的計數是0,我要求的索引是1.這兩個都不是真的.這是我打電話給我的ViewPager和請求給定的頁面:

ViewPager pager = (ViewPager) findViewById(R.id.ma_viewcontainer);

PAdapter adapter = new PAdapter();

pager.setAdapter(adapter);

pager.setCurrentItem(2);

請注意,此調用不會發生任何錯誤,并將當前項目正確設置為中間項目(索引1):

ViewPager pager = (ViewPager) findViewById(R.id.ma_viewcontainer);

PAdapter adapter = new PAdapter();

pager.setAdapter(adapter);

pager.setCurrentItem(1);

我在視圖尋呼機中有3個項目的數量.這是我的完整的PAdapter類,它擴展了PagerAdapter類:

private class PAdapter extends PagerAdapter implements TitleProvider {

private int COUNT = 3;

private static final int SETTINGS_ACTIVITY = 0;

private static final int MAIN_ACTIVITY = 1;

private static final int FRIEND_LIST_ACTIVITY = 2;

@Override

public int getCount() {

return COUNT;

}

@Override

public Object instantiateItem(View collection, int position) {

LinearLayout layout = new LinearLayout(getApplicationContext());

LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

switch(position) {

case MAIN_ACTIVITY :

layout = (LinearLayout) inflater.inflate(R.layout.main, null, false);

initMainLayout(layout);

break;

case SETTINGS_ACTIVITY :

layout = (LinearLayout) inflater.inflate(R.layout.settings, null, false);

initSettingsLayout(layout);

break;

case FRIEND_LIST_ACTIVITY :

layout = (LinearLayout) inflater.inflate(R.layout.friend_list, null, false);

initFriendListLayout(layout);

break;

}

((ViewPager)collection).addView(layout, position);

return layout;

}

@Override

public void destroyItem(View collection, int position, Object view) {

((ViewPager)collection).removeView((LinearLayout)view);

}

@Override

public boolean isViewFromObject(View v, Object o) {

return v == (LinearLayout)o;

}

@Override

public void finishUpdate(View arg0) {

//no need

}

@Override

public void restoreState(Parcelable arg0, ClassLoader arg1) {

//no need

}

@Override

public Parcelable saveState() {

return null;

}

@Override

public void startUpdate(View arg0) {

//no need

}

@Override

public String getTitle(int position) {

Resources res = getApplicationContext().getResources();

switch(position) {

case MAIN_ACTIVITY :

return res.getString(R.string.app_name);

case SETTINGS_ACTIVITY :

return res.getString(R.string.settings);

case FRIEND_LIST_ACTIVITY :

return res.getString(R.string.friend_list);

default :

return null;

}

}

}

行((ViewPager)集合).addView(layout,position);導致崩潰.

你可以看到,三個項目.使用參數為0或1的setCurrentItem()可以正常工作,但是2會導致這個奇怪的錯誤.我已經用盡了想法來解決它…不幸的是,ViewPager駐留在Android的一些未知的水域似乎.如果有人對如何解決這個問題有一些了解,那將是非常感激的.謝謝!

編輯:根據Shereef的建議,我嘗試通過collection.getChildCount()記錄子計數,得到以下結果:

02-22 15:20:42.274: E/children count(645): count: 0

02-22 15:20:42.454: E/children count(645): count: 1

02-22 15:20:42.594: E/children count(645): count: 2

這很有趣.這告訴我的是,它創建一個空的PagerAdapter,并一次添加一個.對于三個可見視圖(中心,左和右),instantiateItem()被調用3次.所以我在instantiateItem()方法中添加了這個代碼塊:

if(((ViewPager)collection).getChildCount() == 2) {

((ViewPager)collection).setCurrentItem(2);

}

所以只有計數確定為2,它會將頁面設置為2(這是一個很難解決的問題,但值得一試).我得到了一個類似的錯誤堆棧,首先指出:((ViewPager)集合).setCurrentItem(2);然后((ViewPager)集合).addView(layout,position);.

希望這有助于提供一些洞察力.

總結

以上是生活随笔為你收集整理的android设置错误页面,Android ViewPager设置当前项目/页面时抛出IndexOutOfBounds异常的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人夜色视频 | 精品人人妻人人澡人人爽牛牛 | 亚洲美女高潮久久久 | 黄色小视频在线免费看 | 欧美 日韩 国产 亚洲 色 | 美女色黄网站 | 精品欧美激情精品一区 | 东方成人av在线 | 日本女人毛片 | 天天干夜夜看 | 亚洲男同视频 | 亚洲精品一区二区在线观看 | 美女国产精品 | 嫦娥性艳史bd | 中文字幕日韩一区 | 丝袜一区二区三区 | 潮喷失禁大喷水无码 | 日韩免费淫片 | 青青草一区二区三区 | 美女十八毛片 | 成人免费在线观看av | 在线播放精品 | 国产精品久久久久久久久岛 | 麻豆做爰免费观看 | 女人被男人躁得好爽免费视频 | 欧美色综合天天久久综合精品 | 国产精品久久久久久av | 亚洲欧洲日本在线 | 亚洲人吸女人奶水 | 欧美丰满熟妇bbbbbb | 精品人伦一区二区三区 | 欧美性爱精品在线 | av高清免费 | 一区二区福利电影 | 亚洲精品91天天久久人人 | 在线色导航 | 天天影视综合 | 懂色一区二区 | 欧美综合一区二区 | 中文天堂在线资源 | 免费a网| 欧美一区二区三区爱爱 | 亚洲经典自拍 | 亚洲一区二区三区黄色 | 91porn在线| 大尺度av | 在线观看欧美一区 | 成年人性生活视频 | 法国空姐在线观看免费 | 樱空桃在线观看 | 日本精品视频一区二区 | 日本在线不卡一区二区三区 | 欧洲做受高潮欧美裸体艺术 | 绝顶高潮合集videos | 亚洲永久无码精品一区二区 | 午夜精品一二三区 | avav国产| 光溜溜视频素材大全美女 | 中文字幕乱码无码人妻系列蜜桃 | 麻豆 美女 丝袜 人妻 中文 | 国产精品一区二区三区四区在线观看 | 免费在线黄色网址 | 射婷婷 | 69xx国产| 国产精品aaa | 日韩特黄一级片 | 国产精品电影一区 | 久久色在线视频 | 九一在线观看免费高清视频 | 久久影视中文字幕 | 国产女同视频 | 91原创视频在线观看 | 日本成人在线网站 | 精品欧美一区二区在线观看 | 日本三级黄色录像 | 成人免费网站在线 | 东北少妇不戴套对白第一次 | 久久午夜无码鲁丝片 | 操屁股视频 | 加勒比成人av | 亚洲春色在线观看 | www.操 | 中文字幕在线观看日韩 | 激情福利 | 岛国一区二区 | 很黄很污的视频网站 | 精品无码三级在线观看视频 | 星铁乱淫h侵犯h文 | 日本精品二区 | 熟妇人妻中文av无码 | 日韩污污| 福利小视频在线 | 欧美三日本三级少妇三级99观看视频 | 激情欧美一区二区三区精品 | 日本免费精品 | 日本伦理片在线看 | 久热久操 | 人人爽人人爽人人片 | 成年人黄色免费网站 |