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