Как реализовать onKeyDown во фрагменте - PullRequest
0 голосов
/ 16 мая 2018

Я изменяю все свои действия на Фрагмент.Я застрял в одной части.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (!sector.getText().toString().equals("Sector") && (media.isChecked() || completa.isChecked())) {
        siguiente.setEnabled(true);
    } else {
        siguiente.setEnabled(false);
    }
    return super.onKeyDown(keyCode, event);
}

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете сделать это, определив метод в вашем классе фрагмента. Например:

public void onMyKeyDown(int key, KeyEvent event){
 //define your statement like
 if (Integer.parseInt(android.os.Build.VERSION.SDK) > 5
            && key == KeyEvent.KEYCODE_BACK
            && event.getRepeatCount() == 0) {

     new AlertDialog.Builder(this)
                .setTitle("Title")
                .setMessage("Do you really want to Exit?")
                .setIcon(R.drawable.logo)
                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int whichButton) {
                        finish();

                    }})
                .setNegativeButton(android.R.string.no, null).show();
 }

}

Вызывайте метод onMyKeyDown всякий раз, когда в вашем классе Activity возникает событие нажатия клавиши. Пример:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

        //call fragment method onMyKeyDown(keyCode, event)

    return super.onKeyDown(keyCode, event);
}
...