【发布时间】:2014-07-07 14:13:02
【问题描述】:
在 IF 语句中,我使用从文本文件中获取的数据(使用 getTopics)。如果数据在那里,则意味着片段将在操作栏中具有相应的选项卡。但是,当我添加它时,我收到了一个空指针异常。这发生在要添加的第三个片段上。
最新的破解代码:
class MyAdapter extends FragmentStatePagerAdapter
{
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
Fragment fragment=null;
if(i==0) //This fragment always has a corresponding action bar tab.
{
fragment=new FragmentA();
}
addTabPosition = 2; //Variable used in getTopics().
addTabTitle = "";
GetTopics();
if(i==1 && !(addTabTitle == ""))
{
fragment=new FragmentB();
}
addTabPosition = 3;
addTabTitle = "";
GetTopics();
if(i==2 && !(addTabTitle == "")) //This is where the program breaks.
{
fragment=new FragmentC();
}
return fragment;
}
不会中断的旧代码:
class MyAdapter extends FragmentStatePagerAdapter
{
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
Fragment fragment=null;
if(i==0)
{
fragment=new FragmentA();
}
if(i==1)
{
fragment=new FragmentB();
}
if(i==2)
{
fragment=new FragmentC();
}
return fragment;
}
【问题讨论】:
-
你应该发布崩溃的错误日志
-
另外,您是否打算在每次 getItem() 调用时运行 GetTopics() 两次,而不管参数是什么?我不知道你对这段代码的意图是什么,但看起来你已经把你想要的东西放在了语句之外的“if”语句中。
-
我认为您应该在 if 条件中使用 nullsave 方式:"".equals(addTabTitle)
标签: java android android-fragments android-actionbar