0

アプリにはいくつかのフラグメントがあります。そのうちの 1 つで、ユーザーは複数の TextEdit フィールドに入力します。終了したら、ActionBar のボタンを押してデータを保存します。アクションは、フィールドからすべてのデータを取得してサーバーに送信する「saveData」という名前のプライベート メソッドを呼び出すだけです。

getView() がメソッド saveData で null を返すことを示す多くのスタック トレースがユーザーから寄せられていますが、それらのごく一部にすぎません。ほとんどの場合、まったく問題はありません。問題を再現できず、何が原因なのか理解できません。コードは非常に単純です。

View vw = this.getView();

EditText et;

et = (EditText)vw.findViewById(R.id.editEmail);
String email = et.getText().toString().trim();

et = (EditText)vw.findViewById(R.id.editPassword);
String password = et.getText().toString().trim();

アクションは osResume に追加されます。以下を参照してください。

public void onResume() {
    super.onResume();

    MainActivity act = (MainActivity)this.getActivity();

    act.bar.removeAllActions(); 
    act.bar.addAction(new SaveAction()); 
}

何か案は?どうすれば再現できますか?

4

1 に答える 1

0

ログから、問題が常に同じユーザー/デバイスで発生しているかどうかを判断できますか?

あなたが送信したコードから、ビューが同じフラグメントにあることがわかります。実際にそうなのですか?

リソースを解放するために、ビューに表示されなくなったフラグメントのビューが破棄される可能性があります。例えば

getView() は null を返します

これが当てはまる可能性があると思われる場合は、リソースが限られている電話/タブレット/エミュレーターで問題を再現しようとします.

幸運を !

于 2013-07-06T21:24:24.393 に答える