DialogFragment を拡張し、OnItemClickListener を実装するクラスがあります。
この DialogFragment には、メイン ビューを拡張する rootView というビューがあります。ボタンを押すと、次の 2 つのビューが作成されます。
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 > partialForm があります。
しかし、portionForm で BACK ボタンを押すと、selectItemForm ではなく rootView に戻ります。
次のようにキーリスナーも作成しました。
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 は呼び出されないため、機能していません。
すべての助けを前もって感謝します。