0

Я пытаюсь добавить выбранный флажок в pref, и когда пользователь закроет приложение, pref очистится, но когда я открою приложение, я получаю все флажки, и даже pref не работает после мой кодКак добавить выбранный флажок в pref

public class MainActivity extends AppCompatActivity { 
    //http://androidopentutorials.com/android-how-to-store-list-of-values-in-sharedpreferences/ 

    private ListView lvData; 
    private ArrayList<ModelUser> modelUsers; 
    private ArrayList<ModelUser> modelUserArrayList; 
    private ModelUser modelUser; 
    private PrefsManager prefsManager; 
    private ProgressDialog pDialog; 
    private String url=""; 
    private MyCustomAdapter mAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     pDialog = new ProgressDialog(this); 
     // Showing progress dialog before making http request 
     pDialog.setMessage("Loading..."); 
     pDialog.show(); 
     lvData = (ListView)findViewById(R.id.lvData); 

     Loaddatas(); 


    } 


    private void Loaddatas() { 

     showpDialog(); 
     JsonArrayRequest req = new JsonArrayRequest(url, 
       new Response.Listener<JSONArray>() { 
        @Override 
        public void onResponse(JSONArray response) { 
         Log.d("ress", response.toString()); 


         // Parsing json 
         for (int i = 0; i < response.length(); i++) { 
          try { 

           JSONObject obj = response.getJSONObject(i); 

           String heder=obj.getString("filterName"); 

           System.out.println("Hader"+heder); 

           JSONArray details=obj.getJSONArray("getParam"); 
           modelUsers = new ArrayList<>(); 
           modelUserArrayList =new ArrayList<ModelUser>(); 
           for(int j=0;j<details.length();j++) 
           { 

            JSONObject det=details.getJSONObject(j); 
            modelUser = new ModelUser(); 

            modelUser.setUserName(det.getString("paramName")); 
            // modelUser.setSelected(false); 
            // modelUser.setId(i); 

            modelUsers.add(modelUser); 


           } 

           mAdapter = new MyCustomAdapter(MainActivity.this,modelUsers); 
           lvData.setAdapter(mAdapter); 
           prefsManager = new PrefsManager(); 

           modelUserArrayList = prefsManager.getFavorites(MainActivity.this); 
           if(modelUserArrayList != null) { 

            for (int k = 0; k < modelUserArrayList.size(); k++) { 

             Log.e("User Name ",""+modelUserArrayList.get(k).getUserName()); 
             Log.e("User SElected ",""+modelUserArrayList.get(k).isSelected()); 
             // Log.e("User user Id ",""+modelUserArrayList.get(j).getId()); 
            } 
           } 


          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 

         } 



         hidepDialog(); 

        } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d("ErrorVolley", "Error: " + error.getMessage()); 
       Toast.makeText(getApplicationContext(), 
         error.getMessage(), Toast.LENGTH_SHORT).show(); 
       hidepDialog(); 

      } 
     }); 

     MyApplication.getInstance().addToReqQueue(req, "jreq"); 
    } 


    private void showpDialog() { 
     if (!pDialog.isShowing()) 
      pDialog.show(); 
    } 

    private void hidepDialog() { 
     if (pDialog.isShowing()) 
      pDialog.dismiss(); 
    } 

} 
+0

общего предпочтения не ясно, когда приложение закрыть его ясно только тогда, когда вы удалите его или cleardata из установки для этого приложения. –

+0

нормально, но прямо сейчас я не умею хранить данные – rosy

+0

все еще ты там застрял? –

ответ

1

попробовать это, для прив части:

SharedPreferences pref; 
SharedPreferences.Editor editor; 

//initialize 
pref = PreferenceManager.getDefaultSharedPreferences(context); 
editor = pref.edit(); 

//get value 
String var = pref.getString("any_tag_name", "default_return_value"); 

//put value 
editor.putString("any_tag_name", "value"); 
editor.commit(); 
+0

, как вы можете видеть, я пытался с помощью prefmanager, так или иначе я могу управлять этим , но все же одно не может сделать, можете ли вы помочь – rosy

+0

уверен, что это такое? – rmanalo

+0

прямо сейчас я могу сохранить выбранные значения в pref, и если я снова открою свое приложение, выбранные значения останутся такими же, как в pref, пока здесь он не будет работать нормально, теперь я пытаюсь, если пользователь закроет приложение и снова откроет его , то выбранные значения должны быть четкими – rosy

0
public static void setPreference(String name, String value) { 
    SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, 0).edit(); 
    editor.putString(name, value); 
    editor.apply(); 
} 

и использовать применяются вместо фиксации, как применить быстрее

для получения его использовать

public static String getPreference(String name, String defaultValue) { 
    return getSharedPreferences(PREFS_NAME, 0).getString(name, defaultValue); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^