2017-07-20 3 views
0

私は、別のアクティビティ(UserActivity)に配置されたボタンをクリックしてアンドロイドでマスター/詳細アクティビティを呼び出します。奇妙なことは、Master/DetailアクティビティのBackボタンをクリックすると、UserActivityの状態でDataが失われてしまうことです。 onCreateメソッドを再度実行したい。バック・ボタンをクリックした後のマスター/詳細フロー・データ

私がUserActivitiyにリダイレクトされたLoginActivityのログインボタンをクリックして、「Smartphone」の戻るボタンを押した場合、入力したユーザー名とパスワードはそのまま残ります。だから私はデータを失うことはありません。

スマートフォンの戻るボタンとプログラムの先頭にある戻るボタンの違いはありますか?私はちょっと混乱しています。私はアクティビティの状態を持続させる方法を知っています。しかし、私の質問は、なぜ私は片側でこの動作をしているのか、他側ではないのかということです。

+0

コードを共有してください。 'DummyContent.java'ファイルとそのすべてを含むテンプレートを使用していますか?私は最近、これを初めて使用しました。プログラムを開始する前にコードをよく見ていないのは残念です。コードは実際には文書化されています。実際には、どのデータがどこに渡され、何が保持されているかを把握するのに時間を費やす必要があります。 – user2875404

+0

実際にテンプレートを使用しました。私はそれが終わったと思うので、私は何とかデータを保持しなければなりません。 – Sully

答えて

0

は、念のためにあなたは、このような質問を残すだろうし、コードを追加しません。おそらく助ける何

が既に存在しているアイテムの量をチェックしています。この問題に遭遇したとき、onStart()はとても素早く呼び出され、アクティビティがデータを失ったように見えました。実際にはデータを持っていましたが、onCreate/onStart(私はフラグメントにあります)をコールしてNULLを返しました。

私がこれを避けるためにしたことは、リストに項目を読み込む必要があるかどうかを確認することでした。存在する場合は、古いonCreate/onStartの処理内容を含むメソッドを呼び出します。データをロードする必要がなければ、そのステップをスキップして残りの人生のために "古い"データを喜んで生きていきます。

@Override 
public void onStart() { 
super.onStart(); 

    if(DummyContent.ITEMS.size()<3){ 
     initializeApp(); 
    } 

} 

void initializeApp(){ 
    videoTitles=new ArrayList<String>(); 
    videoUrls=new ArrayList<String>(); 
    . . . 
} 
関連する問題