0

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 は呼び出されないため、機能していません。

すべての助けを前もって感謝します。

4

1 に答える 1