2012-09-21 29 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

相关问题