#android #android-alertdialog #android-custom-view #android-inflate
Вопрос:
Я должен написать пользовательское предупреждение для класса неактивности, чтобы показать это из всех действий. Я использовал надуватель для пользовательского оповещения, но это приводит к сбою приложения. Пожалуйста, ознакомьтесь с приведенным ниже кодом.Пожалуйста, предложите решение для этого
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
// LayoutInflater inflater = context.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.alertlayout, null);
dialogBuilder.setView(dialogView);
dialogBuilder.setCancelable(false);
TextView btn_ok = dialogView.findViewById(R.id.btn_ok);
TextView txt_dia = dialogView.findViewById(R.id.txt_dia);
txt_dia.setText(msg);
if(subAlertDialog != null amp;amp; subAlertDialog.isShowing()) {
return;
}
subAlertDialog = dialogBuilder.create();
subAlertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
subAlertDialog.show();
btn_ok.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
subAlertDialog.dismiss();
return false;
}
});
Ответ №1:
Попробуйте использовать следующий код, он вам поможет.
//Call dialog from activity
CustomDialog.showDialog(this);
//This is your custom dialog class
public class CustomDialog {
public static void showDialog(Context context){
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View dialogView = inflater.inflate(R.layout.alertlayout, null);
dialogBuilder.setView(dialogView);
dialogBuilder.setCancelable(false);
TextView btn_ok = dialogView.findViewById(R.id.btn_ok);
TextView txt_dia = dialogView.findViewById(R.id.txt_dia);
txt_dia.setText("abc");
btn_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
dialogBuilder.create().show();
}
}