我有一个扩展 DialogFragment 并实现 OnItemClickListener 的类。
在这个 DialogFragment 中,我有一个名为 rootView 的视图,我在其中扩展了我的主视图。当我按下一个按钮时,我会创建两个视图:
selectItemForm = rootView.findViewById(R.id.logging_selectitem_form);
portionForm = rootView.findViewById(R.id.logging_selectitem_portion);
//switch forms
selectItemForm.setVisibility(View.INVISIBLE);
portionForm.setVisibility(View.VISIBLE);
因此,有以下视图序列 rootView > selectItemForm > partForm 。
但是,当我在 partForm 中按下 BACK 按钮时,我会返回 rootView 而不是 selectItemForm。
我还创建了一个关键监听器,如下所示:
portionForm.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.v(TAG + "_setPortionFormOnKeyListener", "I have clicked on the BACK button.");
if(keyCode == KeyEvent.KEYCODE_BACK) {
//switch forms
if(portionForm.getVisibility() == View.VISIBLE) {
portionForm.setVisibility(View.INVISIBLE);
selectItemForm.setVisibility(View.VISIBLE);
return true;
}
}
return false;
}
});
但是,这个 KeyListener 永远不会被调用,所以它也不起作用。
提前感谢所有帮助。