У меня есть первая активность A, где пользователь устанавливает логин и пароль. Затем он нажимает «ОК», поэтому клавиатура открыта, и он прибывает в действие B. В onCreate активности B я показываю DialogFrament, но клавиатура все еще открывается, пока я не скрою DialogFragment.Скрыть клавиатуру перед отображением DialogFragment
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeolocalisationDialog geoDlg = new GeolocalisationDialog();
geoDlg.show(getSupportFragmentManager(), "geoDlg");
}
Мой вопрос: как скрыть клавиатуру, прежде чем показывать DialogFragment?
пс: Мой DialogFrament является основным DialogFragment
public class GeolocalisationDialog extends DialogFragment {
private static DialogClickListener callback;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
callback = (DialogClickListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement DialogClickListener");
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.authorize_geoloc)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
callback.onYesClick();
}
})
.setNegativeButton(R.string.refuse, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
callback.onNoClick();
}
});
return builder.create();
}
}
ps2: Я никогда не пытался установить андроид: windowSoftInputMode = "stateHidden" в манифесте, и он не работает
В действии A или B? Я точно, если я не показываю DialogFragment, клавиатура автоматически скрывается при запуске новой активности. – mrroboaat
Вы можете сделать это внутри кнопки «ОК» onClick, если это создает проблему. Я предполагаю, что его после того, как пользователь завершит ввод пароля. Так сделайте это в первой деятельности. 'yourEditText' может быть полем EditText вашего пароля. –