0

フラグメントが呼び出されるたびにテキスト入力をリセットしたい。

これは私の onCreateView-method の終わりです:

    txtValue.setText("");
    Log.d("debug", "Hello");

    txtValue.addTextChangedListener(tx);
    tx.onTextChanged(txtValue.getText(), 0, 0, 0);      

    InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.toggleSoftInput(0, 0);

毎回 Hello を受け取りますが、テキストは決して変わりません。

4

1 に答える 1

1

私の経験から、それはあなたのインスタンス化によって引き起こされている可能性が非常に高いです。

txtValueはローカルであり、setTextが呼び出されるたびに再割り当てされますか?はいの場合-グローバルオブジェクトに移動します。複数回インスタンス化しており、setTextの誤動作を引き起こしている可能性があります。

また、onCreateメソッドが呼び出されてもよろしいですか?あなたはいつもそのログ出力を受け取りますか?一般に、onCreateメソッドで呼び出されるメソッドでGUIオブジェクトのインスタンス化を分離し、onResumeで操作を呼び出すことをお勧めします。

于 2012-11-14T08:49:17.897 に答える