如何在Fragment中实现onKeyDown

时间:2018-05-16 11:15:52

标签: java android fragment onkeydown

我将所有活动都改为Fragment。我被困在onkeydown部分。

@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 :(得分:0)

您可以通过在fragment类中定义方法来完成此操作。例如:

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();
 }

}

每当在Activity类中引发按键事件时,都会调用onMyKeyDown方法。例如:

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

        //call fragment method onMyKeyDown(keyCode, event)

    return super.onKeyDown(keyCode, event);
}