我有一个包含6个片段的活动(禁用滑动)。对于每个片段,我有2个按钮(下一个和上一个),它们完全移动到下一个和前一个片段。我有2个复选框,在迁移到下一个活动之前,我需要检查它们是否已被选中。但我得到空指针,因为复选框在onCreateView方法中初始化,但由于viewpager已经加载了片段。如何检查是否选中了复选框?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_step6, container, false);
cb1 = (CheckBox)v.findViewById(R.id.cb1);
next = (Button)v.findViewById(R.id.next);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(cb1.isChecked())
return true;
}
});
}
答案 0 :(得分:0)
WHEN
将为您预加载片段,并且不会立即从内存中删除旧片段。我不认为问题是当用户点击下一个按钮时视图消失了。
检查您的布局文件,并确保您在ViewPager
中有一个ID为res/layout/fragment_step6.xml
的复选框。
答案 1 :(得分:-1)
pager.setOffscreenPageLimit(6);//6 = to the number you included in your question.
这会告诉viewpager
在滚动页面时保留fragments
,这样就不会丢失你的状态。