java - How to create new instance dynamically? -
i want store car details sharedpreference. , there more 1 group of data. create new sharedpreference instance when car number not exist.
so instance's name can't same previous one. have no idea create new instance of sharedpreference dynamically.
@override public void onclick(view view) { switch (view.getid()){ case r.id.search_btn: responsetext.settext(""); mlist = new arraylist<sharedpreferences>(); string isnum = textnum.gettext().tostring(); iterator iterator = mlist.iterator(); while (iterator.hasnext()){ if((iterator.next().tostring()).equals(isnum)){ log.i("information","exist!"); break; }else { sharedpreferences pref = getsharedpreferences("data", mode_private); mlist.add(pref); sharedpreferences.editor editor = pref.edit(); editor.putstring("type", texttype.gettext().tostring()); editor.putstring("num", textnum.gettext().tostring()); editor.putstring("car", textcar.gettext().tostring()); editor.commit(); break; } } break; } } edit : trying store details of car (vehicle type, plate number, vehicle identification number) sharedpreference. want store list. want add details if not exist in sharedpreference.
you need pojo class hold details of car.
private class car { public string num; public string car; // getters , setters public void setnum(string num){ this.num = num; } public string getnum(){ return num; } public void setcar(string car){ this.car = car; } public string getcar(){ return car; } } you can use gson library convert list of cars json , store in sharedpreferences.
onclick method,
@override public void onclick(view view) { switch (view.getid()){ case r.id.search_btn: responsetext.settext(""); string isnum = textnum.gettext().tostring(); // create instance of sharedpreferences sharedpreferences pref = getsharedpreferences("data", mode_private); string value = pref.getstring("cardata", ""); type type = new typetoken<arraylist<car>>() {}.gettype() gson gson = new gson(); arraylist<car> cars = gson.fromjson(value, type); // linear search boolean flag = false; (car car : cars) { if(car.num.equals(isnum)){ flag = true; break; } } // not found. add new car if(!flag){ cars.add(new car(textcar.gettext().tostring(), textnum.gettext().tostring())); sharedpreferences.editor editor = pref.edit(); editor.putstring("cardata", gson.tojson(cars)); editor.apply(); } } } note : large number of cars, sharedpreferences can huge. switch database if case.
Comments
Post a Comment