Android ListView校验出勤字段后跳转页面问题求助
没问题,我来帮你搞定这个出勤校验的需求!
解决方案:出勤字段全量校验后再允许跳转
核心思路很简单:在跳转按钮的点击事件里,先遍历所有列表项的attendance字段,确认没有空值或null后才执行跳转,否则提示用户补全出勤标记。
具体修改步骤:
- 在跳转按钮的
onClick方法中,新增校验逻辑,遍历你填充适配器的数据源(也就是addas列表)。 - 一旦发现任意一项的
attendance为空或null,就标记校验不通过并终止遍历。 - 只有所有项都通过校验,才允许跳转到下一个Activity;否则弹出提示阻止跳转。
修改后的跳转代码:
next.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 标记是否所有出勤都已填写完整 boolean allAttendanceFilled = true; // 遍历适配器数据源,逐个检查出勤字段 for (DetailsTeacherwebservice detail : addas) { String attendance = detail.getAttendance(); // 校验:空字符串、纯空格、null都算未填写 if (attendance == null || attendance.trim().isEmpty()) { allAttendanceFilled = false; break; // 发现未填写项就停止遍历,提升效率 } } if (allAttendanceFilled) { // 所有出勤都已填写,执行页面跳转 Intent view_order_intent = new Intent(TeacherWebserviceMainList.this, M_TeacherPresenceList.class); startActivity(view_order_intent); finish(); } else { // 提示用户补全出勤标记 Toast.makeText(TeacherWebserviceMainList.this, "请完成所有教师的出勤标记后再跳转!", Toast.LENGTH_SHORT).show(); } } });
补充优化建议:
- 如果你不想用Toast提示,也可以换成更醒目的AlertDialog:
new AlertDialog.Builder(TeacherWebserviceMainList.this) .setTitle("提示") .setMessage("还有教师的出勤标记未完成,请补全后再操作!") .setPositiveButton("我知道了", null) .show(); - 如果你更习惯用原始的
teacherList做校验,把遍历对象换成teacherList即可,逻辑完全一致:for (Teacher teacherItem : teacherList) { String attendance = teacherItem.getAttendance(); if (attendance == null || attendance.trim().isEmpty()) { allAttendanceFilled = false; break; } }
这样就能实现你要的强制校验效果,只有所有出勤字段都填写完毕,用户才能跳转到下一个页面~
内容的提问来源于stack exchange,提问作者user8259253
相关产品推荐
相关产品推荐

