日韩性视频-久久久蜜桃-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异常的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91蝌蚪| 国产精品久久久久久久久绿色 | 91av在线免费视频 | 自拍偷拍视频网 | 亚洲AV无码成人精品区东京热 | 欧美日韩免费观看一区=区三区 | 欧美成人免费在线观看 | 国产精品一区二区三区高潮 | 91精品啪 | 中文字幕日韩精品亚洲一区小树林 | 欧美精品一区二区三区在线播放 | 秋霞亚洲 | 一本—道久久a久久精品蜜桃 | 天天综合日日夜夜 | 天天插夜夜 | 无码人妻aⅴ一区二区三区日本 | 欧美视频网址 | 天堂欧美 | 国产丝袜精品视频 | 亚洲精品一区二区三区四区五区 | 九色视频在线观看 | 亚洲国产欧美在线人成 | 在线观看午夜视频 | 无套暴操 | 好男人在线视频 | 伊人五月婷婷 | 夜夜嗨av一区二区三区免费区 | 久久久免费观看视频 | 欧美日韩3p | 麻豆自拍偷拍 | 日韩欧美国产电影 | 伊人网伊人影院 | 黄色成人在线网站 | 在线视频www | 98成人网| 亚欧激情 | いいなり北条麻妃av101 | 在线播放成人av | 涩涩视频在线免费看 | 大牛影视剧免费播放在线 | 色欲av伊人久久大香线蕉影院 | 久久人人爽人人人人片 | 一级性生活大片 | 亚洲黄色片子 | 久热在线视频 | xxxx18日本| 操人视频免费 | 国产日韩精品一区 | 国产区久久 | 国产成人精品免费视频 | 亚洲国产日韩欧美在线观看 | 波多野吉衣av | 在线免费观看亚洲 | 潮喷失禁大喷水无码 | 91蝌蚪少妇偷拍 | 亚洲福利电影网 | 国产在线麻豆精品观看 | 观看av | 自拍偷拍视频网 | 在线免费你懂的 | 久久98 | 久久国产麻豆 | yellow免费在线观看 | 欧美黄色小视频 | 校园春色欧美 | 欧美大浪妇猛交饥渴大叫 | 在线精品一区二区 | 亚洲欧美精品午睡沙发 | 撸久久| 一区二区三区四区高清视频 | 377p粉嫩大胆色噜噜噜 | 男女床上拍拍拍 | 男女激情四射网站 | 免费插插视频 | 好吊妞视频一区二区三区 | 欧美日韩一区二区在线观看 | 秋霞黄色网 | 国产精品一区av | 每日更新av| 国产精品一区在线观看你懂的 | av片大全 | 少妇h视频| 欧美极品少妇xxxxⅹ猛交 | 24小时日本在线www免费的 | 黄色精品视频在线观看 | 国产午夜网站 | 亚洲综合色在线 | 国产片淫乱18一级毛片动态图 | 成人交性视频免费看 | 欧美少妇性生活 | 蜜臀久久99精品久久久无需会员 | 国产成人精品一区二区在线小狼 | 国产免费一区二区三区最新不卡 | 国产免费又粗又猛又爽 | 色综合色综合 | 91宅男| 日本中文字幕在线视频 | 欧美最猛性xxxxx(亚洲精品) | 一区二区三区在线看 |