如何解决使用数据绑定处理 AlertDialog 按钮
如何在 Android 中使用 MVVM 和数据绑定处理 AlertDialog 的正/负/中性按钮?我有 RecyclerView 中显示的项目列表,单击一个项目后,我想显示 DialogFragment,它允许更改或删除该项目。如果用户单击“确定”,则该项目将被保存到数据库中,如果用户单击“删除”,则该项目将被删除,而在“取消”时,该对话框将被关闭。我不知道如何通过数据绑定处理侦听器。没有它,我像这样在 onCreateDialog() 中设置监听器:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(message);
builder.setTitle(title);
builder.setPositiveButton("OK",(dialogInterface,i) -> {});
builder.setNegativeButton(getContext().getString(R.string.text_cancel),i) -> dismissDialog());
builder.setNeutralButton(getContext().getString(R.string.text_delete),i) -> removeItem(item));
谢谢
解决方法
如果您为 recyclerView 使用自定义适配器,则可以在视图中添加一个 onClickListener 来显示对话框并传递单击的元素的位置,因此在 positiveButton 的 onClickListener 中,您可以调用该函数进行保存它到您的数据库:
@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder,int position) {
.
.
.
viewHolder.view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog alert = new AlertDialog.Builder(YourActivity.this).create();
alert.setTitle("....");
alert.setMessage(".......");
alert.setButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
saveToDb(List.get(position))
}
});
alert.show();
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。