2
我有一個擴展列表,這是從HashMap<String, List<String>>
,我想知道是否有某種可能性存儲該值的偏好或某事,所以用戶可以編輯展開的列表條目。任何信息,建議將不勝感激。如何存儲/保存HashMap <String,列表<String>>
目前,我創造了節目單,它不保存任何首選項:
public class MainActivity extends Activity{
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// get the listview
expListView = (ExpandableListView) findViewById(R.id.lvExp);
// preparing list data
prepareListData();
listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
// setting list adapter
expListView.setAdapter(listAdapter);
}
/*
* Preparing the list data
*/
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
// Adding header data
listDataHeader.add("Vegetables");
listDataHeader.add("Fruits");
listDataHeader.add("Drinks");
// Adding child data
List<String> vegetables = new ArrayList<String>();
vegetables.add("Tomatoes");
vegetables.add("Potatoes");
vegetables.add("Cucumbers");
vegetables.add("Pumpkins");
vegetables.add("Peppers");
vegetables.add("Onions");
vegetables.add("Garlic");
List<String> fruits = new ArrayList<String>();
fruits.add("Strawberries");
fruits.add("Blackcurrants");
fruits.add("Redcurrant");
fruits.add("Gooseberry");
fruits.add("Kiwifruit");
fruits.add("Grape");
List<String> drinks = new ArrayList<String>();
drinks.add("Vodka");
drinks.add("Milk");
drinks.add("Water");
drinks.add("CocaCola");
drinks.add("Sprite");
listDataChild.put(listDataHeader.get(0), vegetables); // Header, Child data
listDataChild.put(listDataHeader.get(1), fruits);
listDataChild.put(listDataHeader.get(2), drinks);
}
private String does(String child) {
Intent intent = new Intent(this, Confirmation.class);
intent.putExtra("key", child);
startActivity(intent);
return null;
}
}
LOG
09-29 17:21:42.039: E/dalvikvm(25076): Could not find class 'com.google.gson.Gson', referenced from method lt.whiteGroup.ultimateshoppinglist.MainActivity.prepareListData
09-29 17:21:42.125: E/AndroidRuntime(25076): FATAL EXCEPTION: main
09-29 17:21:42.125: E/AndroidRuntime(25076): java.lang.NoClassDefFoundError: com.google.gson.Gson
09-29 17:21:42.125: E/AndroidRuntime(25076): at lt.whiteGroup.ultimateshoppinglist.MainActivity.prepareListData(MainActivity.java:117)
09-29 17:21:42.125: E/AndroidRuntime(25076): at lt.whiteGroup.ultimateshoppinglist.MainActivity.onCreate(MainActivity.java:45)
09-29 17:21:42.125: E/AndroidRuntime(25076): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-29 17:21:42.125: E/AndroidRuntime(25076): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
09-29 17:21:42.125: E/AndroidRuntime(25076): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
09-29 17:21:42.125: E/AndroidRuntime(25076): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-29 17:21:42.125: E/AndroidRuntime(25076): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
09-29 17:21:42.125: E/AndroidRuntime(25076): at android.os.Handler.dispatchMessage(Handler.java:99)
09-29 17:21:42.125: E/AndroidRuntime(25076): at android.os.Looper.loop(Looper.java:130)
09-29 17:21:42.125: E/AndroidRuntime(25076): at android.app.ActivityThread.main(ActivityThread.java:3687)
09-29 17:21:42.125: E/AndroidRuntime(25076): at java.lang.reflect.Method.invokeNative(Native Method)
09-29 17:21:42.125: E/AndroidRuntime(25076): at java.lang.reflect.Method.invoke(Method.java:507)
09-29 17:21:42.125: E/AndroidRuntime(25076): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
09-29 17:21:42.125: E/AndroidRuntime(25076): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
09-29 17:21:42.125: E/AndroidRuntime(25076): at dalvik.system.NativeStart.main(Native Method)
非常感謝你,你提出了一個完善的解決方案:)。我會盡量調整它並儘快給你寫信。 – whiteLT
順便說一句,如果你有時間,你能解釋一下Gson和Json是什麼嗎? – whiteLT
Json是用於將/從String轉換/提取任何變量的語言。當Gson是可以將所有類直接轉換爲字符串的包時,字符串 –