我有一個包含3個圖像按鈕的主要活動。這些作爲選項卡/類別,可以在點擊時提取3個不同的活動。我在主頁選項卡上有一個列表視圖,其中填充了網站的數據。該應用程序允許用戶通過點擊頂部的標籤圖標(這會拉出新的活動)來導航類別。當移動到新活動並返回到前一個活動時保存字符串數組列表的內容
我已經在onSaveInstanceState中使用了.putStringArrayList(),在onRestoreInstanceState中使用了.getStringArrayList()。
我的問題:
當我更新的主頁選項卡上的列表視圖,單擊頂部的另一個標籤定位到一個新的活動,然後返回按下「返回」硬鍵主頁選項卡活動,列表內容被保留。
但是,如果我更新列表,導航到一個新選項卡(活動),然後通過單擊主頁圖標/選項卡(而不是硬後退鍵)導航回到主頁活動,然後列表內容將消失並且必須重新加載。
實際上,在我看來,即使用戶覺得他要回到prev選項卡,該應用程序假定它正在向前移動到該選項卡,並且存在一些數據丟失。
我該如何解決這個問題?
謝謝!
這是我的代碼:
int headlinessize;
int linkssize;
ArrayList<String> headlines = new ArrayList<String>();
ArrayList<String> links = new ArrayList<String>();
private ArrayAdapter<String> adapter;
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putStringArrayList("headlines", headlines);
savedInstanceState.putInt("headlinessize", headlinessize);
savedInstanceState.putStringArrayList("urls", links);
savedInstanceState.putInt("linkssize", linkssize);
super.onSaveInstanceState(savedInstanceState);
}
@SuppressWarnings("unchecked")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainscreen);
if (savedInstanceState!= null){
headlines.addAll(savedInstanceState.getStringArrayList("headlines"));
links.addAll(savedInstanceState.getStringArrayList("urls"));
headlinessize=savedInstanceState.getInt("headlinessize");
linkssize=savedInstanceState.getInt("linkssize");
}
.
.
.
}
在我看來,像你應該使用內置的動作條翼片(http://developer.android.com/guide/topics/ui/actionbar.html#標籤)。然後,您可以對每個選項卡使用碎片,而不是活動,這樣可以更輕鬆地保留狀態。 – jburns20
是的! :)我想這樣做。我是Android的初學者,並且不知道我必須升級我的SDK才能使用它。無論如何,我從這條路開始,想完成它!謝謝! – abishekshenoy