我想创建一个createOrderActivity,其中包含三个片段,如服务信息、调度信息和确认
服务信息片段具有editText,如果单击Next按钮(位于CreateOrderActivity),则首先检查验证editText。然后移动ScheduleFragment页面。如果前两个页面验证通过,则移动到ConfirmationFragment页面。
下面是FragmentViewpagerAdapter类
public class FragmentViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> fragmentList = new ArrayList<>();
private final List<String> fragmentTitleList = new ArrayList<>();
public FragmentViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
fragmentList.add(fragment);
fragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return fragmentTitleList.get(position);
}
}
在创建订单活动类中
@Override
public void onPageSelected(int position) {
boolean checkSch= false;
if (position == 1) {
ServiceInfoFragment serviceInfoFragment = new ServiceInfoFragment();
//checking validation from ServiceInfoFragment fragment Class
if (serviceInfoFragment.checkServiceValidation()) {
checkSch = true;
//Toast.makeText(CreateOrderActivity.this, "Validation okay", Toast.LENGTH_SHORT).show();
}else {
checkSch = false;
// Toast.makeText(CreateOrderActivity.this, "Please check validation", Toast.LENGTH_SHORT).show();
pagerCreateOrder.setCurrentItem(position-1);
}
}
if (position == 2) {
if (checkSch){
ScheduleFragment scheduleFragment = new ScheduleFragment();
if (scheduleFragment.checkScheduleValidation()) {
Toast.makeText(CreateOrderActivity.this, "Validation okay", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(CreateOrderActivity.this, "Please check S validation", Toast.LENGTH_SHORT).show();
pagerCreateOrder.setCurrentItem(position-1);
}
}else {
Toast.makeText(CreateOrderActivity.this, "Please check validation", Toast.LENGTH_SHORT).show();
pagerCreateOrder.setCurrentItem(position-2);
}
}
}
//检查ScheduleFragment类中的checkScheduleValidation(),返回空异常
- 在片段中声明的波纹管方法 *
public boolean checkServiceValidation(){
return true;
}
我上传此图片
2条答案
按热度按时间2hh7jdfx1#
我用自己的方式找到了一个解决方案。我已经在一个视图页中加载了三个片段。在第二个片段中,有一个edittext。在单击下一个按钮时,有一个检查电子邮件的验证。在验证的基础上加载下一个片段。所有片段都作为单个片段加载。由于片段的多个示例,您可能会导致空指针异常。
}
碎片2
}
mf98qq942#
Kotlin:使用此代码=在一个活动中附加框架视图容器,然后包括所有片段*工作正常 *
XML活动
Kotlin文件-仅方法
设置单击时方法
查看寻呼机适配器
使用了相似片段