Я начинаю новое действие, перейдя по элементу в моем списке. Когда я открываю новую активность, появляется переключатель. Я пытаюсь сохранить состояние переключения отдельно для каждого элемента списка. Должен ли я использовать общие предпочтения? Но как?Как сохранить состояние кнопки переключения отдельно по каждому элементу списка
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.one_event);
btnAddToList = (ToggleButton) findViewById(R.id.btnAddToList);
btnAddToList.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton toggleButton, boolean isChecked) {
if(isChecked) {
addEventToList();
scheduleNotification(getNotification("The Event begin soon"), 7200000);
}
else {
Toast.makeText(OneEvent.this, id_favorite_event, Toast.LENGTH_LONG).show();
};
}
});
}
private void addEventToList(){
final String user_id = id_user;
final String event_id = id_event;
class AddNewEventToList extends AsyncTask<Void,Void,String>{
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(OneEvent.this,"Please", "wait",false,false);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
String suc = getFavoriteEventId(s);
if(suc.equalsIgnoreCase("success")){
Toast.makeText(OneEvent.this, "Done", Toast.LENGTH_LONG).show();
}else {
Toast.makeText(OneEvent.this, s, Toast.LENGTH_LONG).show();
}
}
@Override
protected String doInBackground(Void... v) {
HashMap<String,String> params = new HashMap<>();
params.put(Config.LIST_COLUMN_USER_ID,user_id);
params.put(Config.LIST_COLUMN_EVENT_ID, event_id);
RequestHandler rh = new RequestHandler();
String result = rh.sendPostRequest(Config.URL_ADD_TO_LIST, params);
return result;
}
private String getFavoriteEventId(String json) {
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray result = jsonObject.getJSONArray(Config.TAG_JSON_ARRAY_FOR_FAVORITE_EVENT_ID);
JSONObject c = result.getJSONObject(0);
id_favorite_event = c.getString(Config.TAG_GET_FAVORITE_EVENT_ID);
json = "success";
return json;
} catch (JSONException e) {
e.printStackTrace();
}
return json;
}
}
AddNewEventToList anetl = new AddNewEventToList();
anetl.execute();
}
Если вы закрываете приложение, состояние переключения должно быть сохранено? – ansorod
@ansorod Yep, right – FatSlowpoke
@ansorod Вид «Like button» – FatSlowpoke