在android中如何在安装应用程序时创建共享首选项?

时间:2016-12-08 09:04:42

标签: android

你好我是机器人的新手 我想在首次安装应用程序并插入一些数据时创建共享首选项 必须在应用程序中的所有活动中使用共享首选项 我尝试在第一个活动的onCreate()函数中创建共享首选项,并将值插入其中。并编辑其他活动的数据。
但是,当我重新启动应用程序时,共享首选项会更改为中的数据 的onCreate()。
有人能帮助我吗?

2 个答案:

答案 0 :(得分:0)

如果要插入数据一次的方式:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    SharedPreferences preferences = getSharedPreferences("myPref", MODE_PRIVATE);
    boolean shouldInsertData = preferences.getBoolean("shouldInsertData", true);

    if(shouldInsertData){

        //insert your data into the preferences

        preferences.edit().putBoolean("shouldInsertData", false).apply();

    }

}

答案 1 :(得分:0)

“共享首选项”是存储简短信息的最佳方法。但是如果您要从一个活动中创建共享首选项,则可能会出现从其他活动访问它的问题。 您应该从应用程序创建全局通用共享首选项,以便您可以通过android项目在任何活动中的任何位置进行访问。 我得到reference from here- 这是四个步骤。

步骤1 -创建一个名为“ myapp”的Java类文件名,并按应用程序进行扩展。


public class MyApp extends Application {
private static Context context;
private String TAG ="myApp";
@Override
public void onCreate() {
    super.onCreate();
    context = getApplicationContext();
   // Log.e(TAG, "  myapp stater");
}

public static Context getContext(){
    return context;
}}

第2步-在“应用程序”标签内的android清单文件中,添加android:name =“。myapp”

步骤3 -将Java类名称创建为“ SharePreferenceUtils”(注意不要使用名称SharePreference。)


公共类SharePreferenceUtils {

private static String PREFERENCE_NAME = "shopeasy-ecommerce";
private static SharePreferenceUtils sharePreferenceUtils;
private SharedPreferences sharedPreferences;

private SharePreferenceUtils(Context context){
    PREFERENCE_NAME = PREFERENCE_NAME + context.getPackageName();
    this.sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
}

public static SharePreferenceUtils getInstance(){
    if (sharePreferenceUtils == null){
         sharePreferenceUtils = new SharePreferenceUtils(SplashActivity.getContext());
    }
    return sharePreferenceUtils;
}

// login response user_id 1234
public void saveString(String key,  String Val ){
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, Val);
    editor.commit();
}

public String getString(String key, String defVal){
    return sharedPreferences.getString(key, defVal);
}


public String getString(String key){
    return sharedPreferences.getString(key, "");
}

public void saveInt(String key,  int Val ){
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putInt(key, Val);
    editor.commit();
}

public int getInteger(String key){ return sharedPreferences.getInt(key, 0 ); }

/**
 * Clear all values from this preference
 */
public void clear() {
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.clear();
    editor.commit();
}

/**
 * Clear value of given key from this preference
 *
 * @param key name of the key whose value to be removed
 */
public void clearString(String key) {
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.remove(key);
    editor.commit();
}}

步骤4 从活动中调用sharePreferenceUtil SharePreferenceUtils.getInstance()。saveString(“ Username”,“此处的用户名值”);

现在,您可以从任何活动访问共享首选项。只需调用sharepreference java类的实例即可。