2017-05-17 19 views
0

リサイクル・ビューが1つあります。リサイクル・ビューの項目をクリックすると、他のアクティビティに移動します。また、そのアクティビティからメインアクティビティに戻った場合、同じリサイクルビューの位置を表示する必要があります。この場合はfinish()を使用できません。私は仕上げを使用している場合、私は同じリサイクルビューの位置にすることができます。しかし、私の場合、私はそれを使用することはできません。 2回目のアクティビティから戻った後、値を更新するためにAPIをもう一度リフレッシュする必要があります。アクティビティを終了すると、Apiの変更を取得できません。そして私はOnRestoresavedInstance状態を呼び出すことによってやろうとしましたが、その場合はnullポインタ例外に直面しています。 2番目のアクティビティから来ているときに、同じリサイクラビューを取得する方法はありますか?私はこのLinkを使って私の問題を解決しました。しかし、結果は見つかりません。他のアクティビティから来た後に同じリサイクル・ビューの位置に戻る

私を助けてください。 ありがとうございます。

+0

SharedPreferencesにインデックスを格納できます。次に、最初のアクティビティのonResumeメソッドで、それを取得します。 – Fustigador

答えて

0

あなたは共有preferncesに

SharedPreferences settings = getSharedPreferences("YOUR_PREF_NAME", 0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putInt("SNOW_DENSITY",mSnowDensity); 
editor.commit(); 

をリサイクルビューの位置を保存し、あなたが戻ってくるときにちょうど

SharedPreferences settings = getSharedPreferences("YOUR_PREF_NAME", 0); 
int snowDensity = settings.getInt("SNOW_DENSITY", 0); //0 is the default value 

そして今、単純な移動値をフェッチこの

最初に行うことができますリサイクル業者のビューに配置する

mRecyclerView.scrollToPosition(firstCounter - 1); 

希望します。

+0

申し訳ありませんDidntはあなたを完全に得ませんでした。私がeditor.putIntで与えなければならない値は? mSnowDensityはどの値ですか? – Yamuna

+0

動作しません。私はこれを試した。 onResumeでは値 – Yamuna

+0

を回収しています。リサイクラービューの位置 –

関連する問題