android html5 alert,Android项目中,AlertDialog显示顺序不正确

这篇博客探讨了一个Android应用程序中密码修改功能存在的逻辑问题。当用户未输入密码时,原本应该先提示用户确认是否要继续而不进行密码更新,但代码实际执行中却是先显示修改成功后再询问用户。为解决此问题,博主建议在`alertNoPassword.show()`之后添加`return`,以确保在用户未输入密码时不进行后续的数据库更新操作,而是首先提示用户。该博客涉及Android开发中的用户输入验证和对话框管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public void onClick(View v) {

// 获取数据

// 保存除了密码之外的其他信息

if (!password01.equals("")) {

if (password01.equals(password02)) {

if (password01.length() >= 6 && password01.length() <= 18) {

// 获取到密码,并且符合更改密码的操作条件,进行对密码的加密,并将新密码存储到之前的用户数据模型中

}

} else {

// 提示密码长度不足并阻止提交操作

}

} else {

// 提示两次密码不一致并阻止提交操作

}

} else {

// 提示密码为空并询问是否继续提交,如果用户选择提交,就直接执行,不提交则阻止提交操作

}

// 在这里进行更新数据库操作,并提示用户修改成功

}

});

在用户不输入密码的情况下,理想中应该是先提示不会进行改密码操作,询问用户是要进行改密码还是继续,但是这里却先是显示了修改成功,再询问用户要不要改密码,请问应该怎么调整一下这两个AlertDialog的顺序?

源码在底下

public void onClick(View v) {

// 获取需要修改的数据

String username = txbUsername.getText().toString();

String password01 = txbPassword01.getText().toString();

String password02 = txbPassword02.getText().toString();

// 利用二元运算符对性别进行设置

Sex sex = rogSex.getCheckedRadioButtonId() == R.id.rdoMale ? Sex.MALE : Sex.FEMALE;

String region = cmbRegion.getSelectedItem().toString();

// 保存除了密码之外的其他信息

helper.openWriteLink();

userTmp = helper.queryById(uuid);

userTmp.setUsername(username);

userTmp.setSex(sex);

userTmp.setRegion(region);

if (!password01.equals("")) {

if (password01.equals(password02)) {

if (password01.length() >= 6 && password01.length() <= 18) {

try {

userTmp.setPassword(EncryptUtil.md5(password01));

} catch (Exception e) {

Toast.makeText(thisContext, "出现了问题", Toast.LENGTH_SHORT).show();

Log.e("ERROR", "error --- >" + e.toString());

}

} else {

AlertDialog alert = AlertDialogUtil.initAlertDialog(thisContext,

"密码长度错误!", "您的密码长度应该在6-18位之间,请您重新输入", R.drawable.error);

alert.setButton(DialogInterface.BUTTON_POSITIVE, "好的", (DialogInterface.OnClickListener) null);

alert.show();

return;

}

} else {

AlertDialog alert = AlertDialogUtil.initAlertDialog(thisContext,

"两次密码不一致!", "您输入的两次密码不一致,请重新输入", R.drawable.error);

alert.setButton(DialogInterface.BUTTON_POSITIVE, "好的", (DialogInterface.OnClickListener) null);

alert.show();

return;

}

} else {

AlertDialog alertNoPassword = AlertDialogUtil.initAlertDialog(thisContext,

"密码为空!", "由于密码为空,则当前不进行更新密码操作", R.drawable.caution_filled);

alertNoPassword.setButton(DialogInterface.BUTTON_POSITIVE, "好的", (DialogInterface.OnClickListener) null);

alertNoPassword.setButton(DialogInterface.BUTTON_NEGATIVE, "改密", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

return;

}

});

alertNoPassword.show();

}

helper.update(userTmp, String.format("uuid = '%s'", uuid));

AlertDialog alert = AlertDialogUtil.initAlertDialog(thisContext,

"数据修改成功!", "恭喜您成功完成了操作!", R.drawable.benefits);

alert.setButton(DialogInterface.BUTTON_POSITIVE, "好的", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

String id = shared.getString("uuid", "");

currentUser = helper.queryById(id);

String[] arrayRegions = getResources().getStringArray(R.array.array_regions);

txbUsername.setText(currentUser.getUsername());

switch (currentUser.getSex()) {

case MALE:

rogSex.check(R.id.rdoMale);

break;

case FEMALE:

rogSex.check(R.id.rdoFemale);

break;

}

txbPassword01.setHint("您已经设置好了密码,需要修改密码请在两个密码框输入您的新密码!");

txbPassword02.setHint("您已经设置好了密码,需要修改密码请在两个密码框输入您的新密码!");

txbPassword01.setText("");

txbPassword02.setText("");

int position = -1;

for (int i = 0; i < arrayRegions.length; i++) {

if (currentUser.getRegion().equals(arrayRegions[i])) {

position = i;

break;

}

}

cmbRegion.setSelection(position == -1 ? 0 : position);

}

});

alert.show();

}

});

回答

alertNoPassword.show();这个后面加一个return

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值