Я пытаюсь составить список Избранного.
я создаю класс SharedPreferences, в котором хранятся истинные значения, а затем мне нужно использовать все истинные значения.
это мой класс:
public class Baham_SharedPreferences
{
private SharedPreferences prefs;
private static final String NAME = "pref";
public SharedPreferences(Context context) {
prefs = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
}
public boolean getState(String key) {
return prefs.getBoolean(key, false);
}
public void setState(String key, boolean value){
Editor editor = prefs.edit();
editor.putBoolean(key, value);
editor.commit();
}
public void getall()
{
Favorite favorite=new Favorite(); //Favorite is a fragment class
favorite.fav_list=new ArrayList<String>();
Map<String,?> keys = prefs.getAll();
int i=0;
for(Map.Entry<String,?> entry : keys.entrySet())
{
if (entry.getValue().toString()=="true")
{
favorite.fav_list.add(entry.getKey());
Log.d("true value", favorite.fav_list.get(i));
i++;
}
}
}
}
через getall () я пытаюсь создать новый общедоступный ArrayList<String> fav_list;
, объявленный в объявлении класса Favorite, который расширяется от Fragment.
все хорошо на этом шаге! , но в классе любимых фрагментов мой fav_list
ArrayList еще пуст - я использовал этот способ раньше (но в действии, а не во фрагменте) и работал правильно, но в классе фрагментов не работал;
Сначала я вызываю preferences.getall(), затем использую ArrayList fav_list, но возвращаю следующие ошибки:
E/AndroidRuntime(10015): FATAL EXCEPTION: main
E/AndroidRuntime(10015): java.lang.NullPointerException
E/AndroidRuntime(10015): at baham.slidingmenu.Favorite.onCreateView(Favorite.java:52)
E/AndroidRuntime(10015): at android.app.Fragment.performCreateView(Fragment.java:1695)
E/AndroidRuntime(10015): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885)
E/AndroidRuntime(10015): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
E/AndroidRuntime(10015): at android.app.BackStackRecord.run(BackStackRecord.java:682)
E/AndroidRuntime(10015): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
Сейчас! , это не способ передать ArrayList из класса вроде: public class SharedPreferencesn {...}
(который ни от чего не расширяется) в Fragment class
?
(For Example via : bundle.putStringArrayList(key, value) , intent.putExtras and ... )
Изменить:
поэтому я пробую эту ссылку.< /а>