2012-09-21 31 views
0

我正在Eclipse中爲Android平臺創建應用程序,並且我需要某些幫助。 :) 我想要做的一件事就是從另一個ListView中檢查的項目創建一個ArrayList。我想通了如何使這一點,這裏是代碼:Android - 在應用程序關閉時保存已檢查的ListView項目

public class MusicList extends Activity { 
    private ListView lvCheckBox; 
    private String[] arr = { "Depeche Mode", "The Prodigy", "Rammstein", 
      "Manilla Road", "Led Zeppelin", "AC/DC", "Massive Attack", 
      "Skrillex", "Deadmau5" }; 
    ArrayList<String> arrList; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.musiclist); 
     lvCheckBox = (ListView) findViewById(R.id.lvCheckBox); 
     lvCheckBox.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     lvCheckBox.setAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_checked, arr)); 
     arrList = new ArrayList<String>(); 
     lvCheckBox.setOnItemClickListener(new OnItemClickListener(){ 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
         long arg3) { 
        // TODO Auto-generated method stub 
        if(arrList.contains(lvCheckBox.getItemAtPosition(arg2).toString())) 
        { 
         arrList.remove(lvCheckBox.getItemAtPosition(arg2).toString()); 
        } 
        else 
        { 
         arrList.add(lvCheckBox.getItemAtPosition(arg2).toString()); 
        } 

        Collections.sort(arrList); 
        String strText = ""; 

        for(int i=0 ; i<arrList.size(); i++)     
          strText += arrList.get(i) + ","; 


        Toast.makeText(MusicList.this, "Item Clicked: "+ strText,  Toast.LENGTH_SHORT).show();     
       } 
     }); 
    } 
} 

BUT! 現在我需要保存那個ArrayList(就像一些「用戶設置」(實際上是用戶喜歡的音樂)),即使應用程序完全關閉,當我回到列表屏幕時,以前檢查過的項目需要再次檢查(熊考慮到我將增加更多的音樂家到出發名單!!)。那麼,有誰知道如何做到這一點? :)

這一切,在此先感謝,同時也我是新來的很抱歉,如果我搞砸的東西了:(

回答

0

Android有一個SharedPreferences類,可以讓你將信息保存到應用程序的「緩存」

所以,你可以。能夠保存和檢索列表信息。

http://developer.android.com/reference/android/content/SharedPreferences.html

+0

我聽說過一些,但我還聽說,它會不會對大數據的最佳選擇, arraylists等,我打算有很多正如我所說的,在起始數組中的字符串。那麼你的選擇仍然可行嗎? – murtaugh

+0

否。在這種情況下,我建議將ArrayList信息作爲文件保存到設備的主存儲器中。 設備上有一個可存儲應用程序數據的目錄。 您可以使用Android的環境類來獲取此目錄: Environment.getDataDirectory() http://developer.android.com/reference/android/os/Environment.html#getDataDirectory() – mrres1

相關問題