2012-04-01 37 views
0

我有一個項目列表,從使用Jsoup進行網站分析的結果創建,這是按下圖像按鈕時啓動的任務。結果看起來不錯,但當我按下手機上的後退按鈕,然後返回活動時,結果消失,屏幕顯示空白。這意味着用戶將不得不再次按下按鈕。保存用戶按下按鈕後的項目列表

那麼,只有在圖像按鈕被按下後,我該如何去保存項目列表呢?

感謝

編輯

我已經看過了對Android的網站上的數據存儲頁面,並做了以下內容:

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.new_sightings); 

    // Store data once created 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME,0); 

    reload = (Button)findViewById(R.id.reloadTen); 
    reload.setOnClickListener(this); 

    list = getListView(); 
    list.setOnItemClickListener(new OnItemClickListener() 
    { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
     { 
      // Start an activity based on what list view item is pressed 
      Intent intent = new Intent(newSightings.this, newCompass.class); 

      // Pass the data we retrieved to the next activity 
      intent.putExtra("info",data[position] ); 
      startActivity(intent); 
     } 

    }); 
    list.setTextFilterEnabled(true); 
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems); 
    setListAdapter(adapter); 
} 

@Override 
protected void onStop() 
{ 
    super.onStop(); 

    SharedPreferences settings = getSharedPreferences(PREFS_NAME,0); 
    SharedPreferences.Editor editor = settings.edit(); 

    for(int i = 0; i < data.length; i++) 
    { 
     editor.putString("sighting"+i,data[i].toString()); 
    } 
    editor.commit(); 
} 

我知道我還沒有在OnCreate做了很多方法,因爲我不確定如何正確調用數據。有很多數據,每個密鑰的值都不相同。順便說一句,我應該添加到實際獲取數據的AsyncTask期間的共享偏好?我對這個有點困惑......

+0

這就是所有活動?或者活動A是否按住按鈕,活動B是否顯示項目列表? – pouzzler 2012-04-01 21:18:28

+0

是的,這都是一項活動。當按下圖像按鈕時,它獲取數據並將其放置在屏幕上。 – Katana24 2012-04-01 21:24:02

回答

1

你有兩個選擇保存這些信息:解析完成後,右鍵

  1. 。您可以使用SharedPreferences在向用戶顯示數據後立即保存數據。
  2. 您可以攔截返回鍵按下,看到Intercept back button from soft keyboard

我會選擇#1,#因爲2是更麻煩。請參閱Activity Lifecycle文檔以瞭解何時恢復保存的信息。

+0

是的,我看着後面的鍵,它似乎是最令人費解的方法。我根據當前活動被遮蔽的時間成功存儲了用戶位置數據,如doc鏈接pouzzler所指示的那樣。當我將列表視圖放在那裏時,我會發布我所做的。再次感謝:D – Katana24 2012-04-02 18:01:15

1

那麼,當你使用回來,活動已經消失。因此,您需要硬存儲數據。 this可以提供幫助。

然後,在onCreate()檢查您是否保存了數據,如果有,請加載它。

此致敬禮。

1

使用共享首選項之前,你能告訴你要保存多少。如果你想保存一些數據然後去保存它,但是如果你有大量的數據,那麼不要喜歡與共享首選項去。 當您在按鈕點擊時從服務器檢索數據並在需要時進行檢索時,將數據存儲在數據庫中。

對你的問題進行細分,你是「listitems」你保存數據的地方,所以只要把它變成靜態的並且嘗試一下也必須解決你的問題。

以上兩項都必須適用於您的方案。

+0

Alittle很難理解你,但我想我已經得到了你。乾杯 – Katana24 2012-04-02 17:59:33