#android #dialog #android-softkeyboard #dismiss
#Android #диалоговое #android-программная клавиатура #закрыть
Вопрос:
У меня проблема с закрытием диалогового окна.
У меня есть два случая:
1. Вставьте присутствие без информации (поэтому программная клавиатура не отображается, когда я нажимаю на редактируемый текст).
2. Вставьте присутствие с информацией.
private Dialog newPresenceUser;
newPresenceUser= new Dialog(activity);
ImageView addPresenceButton=(ImageView)itemView.findViewById(R.id.add_pres);
addPresenceButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CardView send;
final Spinner tipo;
final EditText info;
final ImageButton exit;
newPresenceUser.setContentView(R.layout.new_presenza);
exit=(ImageButton)newPresenceUser.findViewById(R.id.exit_event_button);
tipo=(Spinner) newPresenceUser.findViewById(R.id.spinner_tipo);
send=(CardView) newPresenceUser.findViewById(R.id.event_insert);
info=(EditText)newPresenceUser.findViewById(R.id.info_presenza);
exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
newPresenceUser.dismiss();
}
});
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//newPresenceUser.cancel();
String infoAgg=info.getText().toString();
try {
new GestorePresenza().inserisciPresenza(activity,user,tipo.getSelectedItem().toString(),infoAgg,lstCont.get(i).getUid(),(View)viewGroup.getParent(),newPresenceUser);
newPresenceUser.dismiss();
} catch (ParseException e) {
e.printStackTrace();
}
}
});
newPresenceUser.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
newPresenceUser.show();
}
});
Итак, проблема в том, что когда я нажимаю на EditText — появляется программная клавиатура.
Если я вставляю присутствие, не нажимая на EditText, это работает без проблем.
Ответ №1:
Используйте приведенный ниже код, чтобы закрыть диалоговое окно. Сначала проверьте отображение диалогового окна, если отображается диалоговое окно, то вы можете закрыть, в противном случае, возможно, ваше приложение потерпело крах.
if(newPresenceUser!=null amp;amp;
newPresenceUser.isShowing())
{
newPresenceUser.dismiss();
}
Комментарии:
1. Спасибо, я решаю. проблема заключалась в том, что я не знаю почему, диалоговое окно будет сгенерировано два раза, если я нажму на EditText, поэтому первая ссылка, которую я передал, недействительна.