Я показываю диалог в приложении-start, где вам нужно выбрать конфигурацию. Поскольку необходимо выбрать один конфиг, я хочу «отключить» обратную кнопку через пустой onBackPressed()
.onBackPressed() не работает
Я получил следующий код в DialogFragment
:
public class ChangeConfigDialogFragment extends DialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.dialog_config_change)
.setItems(R.array.config_array,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// The 'which' argument contains the index
// position
// of the selected item
if (which == 0){
Initiation.BAUDRATE = 500;
Toast.makeText(getActivity(), "Baudrate at " + Initiation.BAUDRATE, Toast.LENGTH_LONG).show();
if (Initiation.getADK() == null){
Initiation.initiateCAN();
}
} else if (which == 1) {
Initiation.BAUDRATE = 600;
Toast.makeText(getActivity(), "Baudrate at " + Initiation.BAUDRATE, Toast.LENGTH_LONG).show();
if (Initiation.getADK() == null){
Initiation.initiateCAN();
}
} else if (which == 2) {
Initiation.BAUDRATE = 700;
Toast.makeText(getActivity(), "Baudrate at " + Initiation.BAUDRATE, Toast.LENGTH_LONG).show();
if (Initiation.getADK() == null){
Initiation.initiateCAN();
}
}
}
});
// Create the AlertDialog object and return it
return builder.create();
}
public void onBackPressed(){
Log.d(getTag(), "are you there?");
}
}
Проблема заключается в том, что onBackPressed()
никогда не был назван. Даже сообщение журнала не отображается.
Я пытался очистить проект, но не удался. Также попытался использовать метод onKeyDown из некоторых других тем здесь, на SO. Кто-нибудь знает, как это решить?
EDIT:
Он работает в настоящее время. .setCancelable(false);
работал, но я был глуп, чтобы добавить его в Dialog
, из которого был вызван Fragment
. (Вместо того, чтобы добавили его к builder
Спасибо за вашу помощь и время.
'onBackPressed()' является активность и не фрагментировать метод - вы не отменяя ничего. Чего вы пытаетесь добиться, переопределив это? – laalto
Как насчет установки KeyListener? – Triode
Я попробовал, потому что в другом приложении это сработало. Поэтому я просто скопировал код 'onBackPressed()' и подумал, что это сработает, так как это не я начал искать ответы – Fraggles