View Full Version : مشکل با shared preferences
ho3ein.3ven
دوشنبه 06 مرداد 1393, 17:16 عصر
سلام .
من در هنگام شروع برنامم دستورات زیر رو اجرا می کنم :
final SharedPreferences shp = getSharedPreferences(Var[row][num], MODE_PRIVATE);
if (shp.getString(Var[row][num], "false")=="true")
{
dl.setEnabled(false);
}
else
{
dl.setEnabled(true);
}
بعد یک جای برنامم دستورات زیر رو اجرا می کنم برای تغییر دادن مقدار shared pereferences :
SharedPreferences shp = getSharedPreferences(Var[row][num], MODE_PRIVATE);
SharedPreferences.Editor shpE= shp.edit();
shpE.putString(Var[row][num], "true");
shpE.commit();
برنامه رو روی شبیه ساز اجرا می کنم و مشکلی نداره ولی روی گوشی که تست می کنم جواب نمیده . یعنی مقدار shared preferences تغییر نمی کنه .
ho3ein.3ven
سه شنبه 07 مرداد 1393, 09:53 صبح
دوستان اگه امکانش هست راهنمایی کنید .
barnamenevisjavan
سه شنبه 07 مرداد 1393, 10:22 صبح
فکر کنم توی صفحه های مختلف ازش استفاده میکنی دلیلش اینه ک این shared از همه جای برنامه قابل دسترسی نیست
یه کلاس جدید بساز و کدهای زیر رو قرار بده
package ir.Mahdi.selfregulation;
import android.content.Context;
import android.content.SharedPreferences;
public class SharedP {
private static String MY_STRING_PREF = "detail";
private static String MY_INT_PREF = "detail";
private static String MYY_INT_PREF = "detail";
private static SharedPreferences getPrefs(Context context) {
return context.getSharedPreferences("detail", 0);
}
public static String getMyStringPref(Context context) {
return getPrefs(context).getString(MY_STRING_PREF, "default");
}
public static int getMyIntPref(Context context) {
return getPrefs(context).getInt(MY_INT_PREF, 42);
}
public static void setMyStringPref(Context context, String value) {
// perform validation etc..
getPrefs(context).edit().putString(MY_STRING_PREF, value).commit();
}
public static void setMyIntPref(Context context, int value) {
// perform validation etc..
getPrefs(context).edit().putInt(MY_INT_PREF, value).commit();
}
public static void ssetMyIntPref(Context context, int value) {
// perform validation etc..
getPrefs(context).edit().putInt(MYY_INT_PREF, value).commit();
}
public static int ggetMyIntPref(Context context) {
return getPrefs(context).getInt(MYY_INT_PREF, 42);
}
}
هرجا خواستی استفاده کنی اول یه نمونه ازش بساز
Sharedp shr = new Sharedp();
هرجا خواستی مقداری رو بخونی
shr.getMyStringPref(getApplicationContext())
بعدش هرجا خواستی مقداری رو اضافه یا تغییر بدی
shp.setMyStringPref(getApplicationContext(), "مقدار");
ho3ein.3ven
سه شنبه 07 مرداد 1393, 11:08 صبح
از این نمی تونم استفاده کنم .
من از shared preferences فقط در یک اکتیویتی استفاده میکنم . بر اساس اطلاعاتی که در اکتیویتی قبلی وارد میشه یک shared preferences جدید ایجاد می کنه .
یعنی کد هام مشکلی نداره ؟
ho3ein.3ven
سه شنبه 07 مرداد 1393, 15:10 عصر
پس مجبورم از دیتابیس استفاده کنم دیگه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.