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(就像一些“用户设置”(实际上是用户喜欢的音乐)),即使应用程序完全关闭,当我回到列表屏幕时,以前检查过的项目需要再次检查(熊考虑到我将增加更多的音乐家到出发名单!!)。那么,有谁知道如何做到这一点? :)
这一切,在此先感谢,同时也我是新来的很抱歉,如果我搞砸的东西了:(
我听说过一些,但我还听说,它会不会对大数据的最佳选择, arraylists等,我打算有很多正如我所说的,在起始数组中的字符串。那么你的选择仍然可行吗? – murtaugh
否。在这种情况下,我建议将ArrayList信息作为文件保存到设备的主存储器中。 设备上有一个可存储应用程序数据的目录。 您可以使用Android的环境类来获取此目录: Environment.getDataDirectory() http://developer.android.com/reference/android/os/Environment.html#getDataDirectory() – mrres1