java - 复选框未显示在 android 的弹出窗口中
问题描述
我正在尝试添加一个带有复选框的弹出窗口,如果未选中该复选框,则它不应该在弹出窗口上按“是”,最好在弹出窗口中出现某种错误消息。我的尝试如下。
AlertDialog.Builder builder = new AlertDialog.Builder(EmptyActivity.this);
builder.setTitle(R.string.app_name);
builder.setMessage("Confirm for go?");
final CharSequence[] items = {"Something to check before going "};
final ArrayList selectedItems=new ArrayList();
builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
//Here you add or remove the items from the list selectedItems. That list will be the result of the user selection.
if(isChecked) {
selectedItems.add(which);
}
}
});
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
if(selectedItems.size() == 1) {
//call going api
}
else{
//show an error msg inside pop up to tick the checkbox and unable to click yes
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
弹出如下图所示。
当我运行它时,我看不到弹出窗口内的复选框。所以有人知道我哪里错了吗?我应该如何在弹出窗口中显示错误消息以通知用户在单击是之前勾选复选框?
解决方案
private void showDialogue() {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.custom_dashboard, null);
dialogBuilder.setView(dialogView);
final AlertDialog alertDialog = dialogBuilder.create();
final CheckBox one = dialogView.findViewById(R.id.chk01);
Button done = dialogView.findViewById(R.id.done);
done.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (one.isChecked()) {
//do something
}else{
//do something
}
});
alertDialog.show();
}
推荐阅读
- php - 在 laravel/fortify 中使用 api 令牌进行身份验证
- android - ARCORE:Sceneform 1.16 渲染问题
- java - 带有 micronaut 和 aws sdk-v2 的 GraalVM 原生镜像
- mysql - 根据来自视图和另一个表的值在表中插入值
- php - Laravel连接结果字段列表中的列product_id是不明确的错误
- react-native - 在 this.props.navigation.navigate 中反应原生模板文字
- vba - 如何在 MS Access 中计算员工服务并保存在表字段中。(不是通过查询)
- typescript - 如何使用 NestJS graphql 上传多个文件?
- django - Django 使用页面 slud/id 上传图片
- ios - 控制器首次出现时获取可见项目?