2017-07-01 8 views
-1

okボタンをクリックするとonclickがアイテムをarraylistに追加し、firebaseに追加します。アイテムを追加すると、画面を回転する前に作成されたアイテムがすべて削除され、アイテムが再び追加されます。ここ は私のボタンのコードは、新しいアイテムを追加するのではなく、新しいアイテムを追加するのではなく、前のitesmを削除します

conver_textview_to_string=new ArrayList<>(); 
     b.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        conver_textview_to_string.add("123"); 
        for(int i=0;i<conver_textview_to_string.size();i++){ 
         myRef.setValue(conver_textview_to_string); 
        } 

       } 
      }); 

ある

答えて

2

画面の回転時にActivityは、再作成、順序、あなたが、あなたはデフォルトの設定でonRestoreInstanceState

protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putParcelableArrayList("myText", conver_textview_to_string); 
    } 

protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    conver_textview_to_string = savedInstanceState.getParcelableArrayList("myText");  
} 
+0

ありがとう、ありがとう、conver_textview_to_stringはなぜ私の配列リスト宣言はグローバルです。 – SeekingKnowleges

+0

'outState.putStringArrayList'と' savedInstanceState.getStringArrayList'を試してみてください。これはあなたの問題を解決すると思います –

+0

あなたは夕食の星ですが、今私はアプリを終了し、最初にすべてを削除する前に同じ問題を再開すると、新しいものを追加しますか? – SeekingKnowleges

2

ありがとうあなたのアクティビティ名と

<activity android:name=".MyActivity" 
       android:configChanges="keyboardHidden|orientation|screenSize" 
android:label="@string/app_name"> 
をMyActivityを交換し、あなたのmenifest.xmlで、あなたの活動を登録

これを置きます

+0

Aniruddh Pariharの迅速な対応に感謝しますが、それでも同じ問題 – SeekingKnowleges

+0

てみアンドロイドを働いていませんでした。configChanges =「オリエンテーション|画面サイズ」アドマイヤあなた@ –

+0

:私は更新されているが、それを確認してください。 –

1

内のアクティビティが破壊され、その値をonSaveInstanceState内のデータ/値を格納して取得する必要があります(画面の回転前)以前のデータを保存するためにそうされます画面が回転するたびに再作成されます。

  • 保存活動onSaveInstanceState(Bundle outState)をオーバーライドバンドルでの状態とバンドルがonCreateに引数として渡されると、その後回復状態やあなたのマニフェストであなたの活動のためのonRestoreInstanceState

  • 追加

    android:configChanges="orientation | screensize"オーバーライド:あなたは2つのことを行うことができます。 xml。これにより、画面の回転でアクティビティが再作成されなくなります。

+0

を参照してください。あなたの答えはまた、いくつかの変更で動作します。パイプ間のスペースを取り除き、サイズの首都を作成します。すべてに – SeekingKnowleges

関連する問題