gpt4 book ai didi

android - 实现横向导航时应用程序崩溃

转载 作者:行者123 更新时间:2023-11-29 14:52:07 24 4
gpt4 key购买 nike

我创建了一个导航类型为“tabs + swipe”的新 Activity 。我在 getItem() 方法中做了这些更改:

@Override
public Fragment getItem(int i) {
Fragment fragment ;

switch(i){
case 0:
fragment = new Fragment1();

break;
case 1:
fragment = new Fragment2();
break;
case 3:
fragment = new Fragment3();
break;
//
default : return null;
}

//set args if necessary


//return fragment
return fragment;
}

所以我为每个选项卡定义了一个单独的类。其中一类是这样的:

public static class Fragment1 extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/

public Fragment1() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Create a new TextView and set its text to the fragment's section
// number argument value.
View v = inflater.inflate(R.layout.center, null);
return v;
}
}

当我运行应用程序时,新 Activity 成功启动,但是当我将屏幕滑动到第二个选项卡时,应用程序崩溃了……这是 logcat:

02-16 08:48:43.328: E/AndroidRuntime(21541): FATAL EXCEPTION: main
02-16 08:48:43.328: E/AndroidRuntime(21541): java.lang.NullPointerException
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:394)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:389)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:99)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:801)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.view.ViewPager.populate(ViewPager.java:992)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.view.ViewPager.populate(ViewPager.java:881)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.view.ViewPager$3.run(ViewPager.java:237)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.os.Handler.handleCallback(Handler.java:605)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.os.Handler.dispatchMessage(Handler.java:92)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.os.Looper.loop(Looper.java:137)
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.app.ActivityThread.main(ActivityThread.java:4575)
02-16 08:48:43.328: E/AndroidRuntime(21541): at java.lang.reflect.Method.invokeNative(Native Method)
02-16 08:48:43.328: E/AndroidRuntime(21541): at java.lang.reflect.Method.invoke(Method.java:511)
02-16 08:48:43.328: E/AndroidRuntime(21541): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
02-16 08:48:43.328: E/AndroidRuntime(21541): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
02-16 08:48:43.328: E/AndroidRuntime(21541): at dalvik.system.NativeStart.main(Native Method)

请解决我的问题。

最佳答案

最有可能的是,您的默认语句返回 null 并且它尝试添加一个 null fragment ..但失败了...您知道您的 switch 语句缺少 case 2..是故意的吗?
如果我是你,我会休息一下

    switch(i){

并检查 i... 的值,看看它是 0、1 还是 3... 否则您的应用会崩溃,因为它返回 null。

关于android - 实现横向导航时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14906601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com