0

今日、アプリでバグが検出されました。ユーザーがリストビューのアイテムをクリックすると、このアイテムの詳細を含む新しいフラグメントが起動します。しかし、ユーザーがこのフラグメントにいるときに、デバイスの向きを変えると、最初のクラス (リストビューを取得する) の onCreate メソッドが呼び出され、アプリがクラッシュしました。

onCreate メソッドに次のようなテストを追加するために、前のフラグメントの名前を取得できるかどうかを知りたいです。

if (!fragmentName.equals("common")){
        Log.d("INFO", "Do nothing in this case, because user was in detail fragment before !"),
} else {
        super.onCreate(savedInstanceState); 
        refreshList(true);
}
4

1 に答える 1

0

Fragment オブジェクトの新しいインスタンスを作成するため、前のフラグメントの名前を取得することはできないと思います。

あなたがやろうとしていることに私が正しければ、データを表示しているオブジェクトを何らかの形で保存して、Fragment再作成されたときに必要なオブジェクトを取得できるようにする必要があります。1 つの方法は、オブジェクトの ID または一意のプロパティを保持し、SharedPreferencesどこかのシングルトンからリロードするときにそのデータを再取得することです。

基本的に、データを取得する方法を変更するか、元の開口部からデータを渡す必要がある場合があります。これにより、2 番目の開口部が破壊されFragmentた場合に再びデータを取得できるようになります。Fragment

于 2013-08-28T11:23:05.550 に答える