我是新來的這個多選列表視圖。我想將複選框的選中狀態保存在列表視圖中,這樣如果用戶關閉應用程序然後再次打開,選中的複選框仍然保持選中狀態。有沒有辦法做到這一點。我搜索了它,發現它可以使用SharedPreference完成,但我沒有得到有關如何使用它的更多信息。由於在多選列表視圖中保存複選框的選中狀態
public class MainActivity extends AppCompatActivity {
ListView myList;
Button getChoice;
String[] listContent = {
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myList = (ListView)findViewById(R.id.list);
getChoice = (Button)findViewById(R.id.getchoice);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, listContent);
myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
myList.setAdapter(adapter);
getChoice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String selected = "";
int cntChoice = myList.getCount();
SparseBooleanArray sparseBooleanArray = myList.getCheckedItemPositions();
for(int i = 0; i < cntChoice; i++){
if(sparseBooleanArray.get(i)) {
selected += myList.getItemAtPosition(i).toString() + "\n";
}
}
Toast.makeText(MainActivity.this, selected, Toast.LENGTH_LONG).show();
}
});
}
}
當我在我的應用程序中運行你的代碼時,應用程序在'SharedPreferences sharedPreferences = getSharedPreference'行去掉NPE'@Michael – CodeAssasins
無論如何解決它。順便說一句,你的代碼是最好的人選。 @邁克爾。 – CodeAssasins
另外,有沒有什麼辦法可以刪除這個sharedpreference? – CodeAssasins