【发布时间】:2015-09-16 17:43:08
【问题描述】:
我有使用FragmentPagerAdapter 创建的标签:
public class SectionsPagerAdapter extends FragmentPagerAdapter {
static final int PAGE_COUNT = 2;
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
return new SessionDetails();
case 1:
return new SessionScoreTable();
}
return null;
}
@Override
public int getCount() {
return PAGE_COUNT;
}}
我需要通过单击另一个选项卡上的按钮来更新一个选项卡。
父 FragmentActivity 有:
fragSessionDetails = (SessionDetails) mSectionsPagerAdapter.getItem(0);
并且有function:
public void setSessionCompleted(){
fragSessionDetails.processSessionCompleted();
}
从另一个选项卡 (SessionScoreTable) 调用。
SessionDetails标签有功能:
public void processSessionCompleted(){
Log.d(TAG,"processSessionCompleted" );
bSave.setEnabled(false);
}
bSave 是按钮。
在日志中我有 NullPointerException 在行 - bSave.setEnabled(false):
06-30 16:20:45.414: D/STS_SessionDetails(15876): processSessionCompleted 06-30 16:20:45.414: D/AndroidRuntime(15876): 关闭 VM 06-30 16:20:45.414: W/dalvikvm(15876): threadid=1: 线程以未捕获的异常退出 (group=0x41b62d88) 06-30 16:20:45.414: E/AndroidRuntime(15876): 异常 06-30 16:20:45.414:E/AndroidRuntime(15876):致命异常:主要 06-30 16:20:45.414: E/AndroidRuntime(15876): 进程: com.vvv.vvvvvvvvvvvvv, PID: 15876 06-30 16:20:45.414: E/AndroidRuntime(15876): java.lang.NullPointerException 06-30 16:20:45.414: E/AndroidRuntime(15876): 在 com.vvv.vvvvvvvvvvvvv.SessionDetails.processSessionCompleted(SessionDetails.java:237) 06-30 16:20:45.414: E/AndroidRuntime(15876): at com.vvv.vvvvvvvvvvvvv.Session.setSessionCompleted(Session.java:151)
看起来我失去了一些东西,但不知道是什么。 请帮忙。
【问题讨论】:
-
尝试使用 FragmentStateAdapter 而不是 FragmentPagerAdapter
标签: android android-fragments fragmentpageradapter