如何解决onclick 在 android 中的自定义 AlertDialog 中不起作用
嗨,在下面的代码中,如果为空,则单击保存时应显示一些错误,否则应移至下一步。但它不起作用。在 frgament 中,我正在调用 openDiag() 方法。
谁能帮帮我
public class HomeNurseFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_coordinatorhome,container,false);
openDialog(rootView);
public void openDialog(View view) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
// alertDialogBuilder.setTitle("Select Hospital and Proceed");
final View customLayout
= getLayoutInflater()
.inflate(
R.layout.popup_hospitallist,null);
alertDialogBuilder.setView(customLayout);
Button save = customLayout.findViewById(R.id.proceed);
TextView cancel = customLayout.findViewById(R.id.cancel);
save.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(hospital.getItemAtPosition(0).equals("Preferred hospital")){
hospital.setError("Please select Preferred hospital ");
}else {
alertDialogBuilder.setCancelable(true);
}
}
});
cancel.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialogBuilder.setondismissListener(new DialogInterface.OndismissListener() {
@Override
public void ondismiss(DialogInterface dialog) {
dialog.dismiss();
}
});
}
});
// AlertDialog alertDialog = alertDialogBuilder.create();
alertDialogBuilder.show();
}
}
}
解决方法
如果您想显示错误消息而不是关闭 AlertDialog,您必须禁用 clickListener 并设置您的自定义监听器。
public void openDialog(View view) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
// alertDialogBuilder.setTitle("Select Hospital and Proceed");
final View customLayout = getLayoutInflater().inflate(R.layout.popup_hospitallist,null);
alertDialogBuilder.setView(customLayout);
alertDialogBuilder.setPositiveButton("Save",null); // set listener to null as you will override it later
alertDialogBuilder.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
dialog.dismiss();
}
});
final AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
// Overriding the Positive button here
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if(hospital.getItemAtPosition(0).equals("Preferred hospital")){
hospital.setError("Please select Preferred hospital ");
} else {
alertDialogBuilder.setCancelable(true);
}
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。