我有一个扩展了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,因此它也不起作用。
提前感谢所有帮助。
答案 0 :(得分:0)
@Override
public boolean onKeyUp( int keyCode, KeyEvent event )
{
if( keyCode == KeyEvent.KEYCODE_BACK )
{
if(portionForm.getVisibility() == View.VISIBLE) {
portionForm.setVisibility(View.INVISIBLE);
selectItemForm.setVisibility(View.VISIBLE);
}
}
return super.onKeyUp( keyCode, event );
}