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