我已经创建了一个应该只显示一次的活动。在这个活动中,我添加了一个按钮,然后单击它的关闭,当应用程序再次启动时,它将不再重新打开。我曾想过使用SharedPreferences,但没有得到想要的结果。
我以共享的方式记忆数据:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
SharedPreferences userDetails = getSharedPreferences("entrato", MODE_PRIVATE);
Editor edit = userDetails.edit();
edit.clear();
edit.putString( "entrato", "entra" );
edit.commit();
this.finish();
break;
}
}然后,在前面活动的OnCreate()中调用共享,如果存在数据,请不要打开该活动:
//remember click
SharedPreferences userDetails = getSharedPreferences("entrato", MODE_PRIVATE);
String valore = userDetails.getString("entrato", "");
if (valore.equals("entra")){
return;
}else{
Intent intent = null;
intent = new Intent(this, Benvenuto.class);
startActivity(intent);发布于 2014-03-15 14:45:30
创建这样的共享偏好类:
public class MyPreference {
private static final String APP_SHARED_PREFS = "myPref";
private SharedPreferences appSharedPrefs;
private Editor prefsEditor;
public MyPreference(Context context) {
this.appSharedPrefs = context.getSharedPreferences(APP_SHARED_PREFS, Activity.MODE_PRIVATE);
this.prefsEditor = appSharedPrefs.edit();
}
public boolean loadServices(String servicName) {
return appSharedPrefs.getBoolean(servicName, false);
}
public void saveServices(String servicName, boolean isActivated) {
prefsEditor.putBoolean(servicName, isActivated);
prefsEditor.commit();
}
}然后,在Oncreate活动上,检查服务是否存在,这样就不会显示和退出。
public static MyPreference myPref = new MyPreference(this);
if(myPref.loadService("this is not first time")){
thisActivity.finish();
}else {
// so it's first time and you can do what ever you want to do
}然后继续单击events并像这样保存服务。
public static MyPreference myPref = new MyPreference(this);
myPref.saveService("this is not first time");发布于 2014-03-15 14:49:13
尝试使用下面的代码
// save string
static public boolean setPreference(Context c, String value, String key) {
SharedPreferences settings = c.getSharedPreferences(PREFS_NAME, 0);
settings = c.getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString(key, value);
return editor.commit();
}
// retrieve String
static public String getPreference(Context c, String key) {
SharedPreferences settings = c.getSharedPreferences(PREFS_NAME, 0);
settings = c.getSharedPreferences(PREFS_NAME, 0);
String value = settings.getString(key, "");
return value;
}发布于 2016-02-10 11:56:52
我有四项活动
如果我使用复选框选中“记住我”选项,那么我必须记住我单击的按钮,然后在下一次开始时直接启动第3或第4项活动。
https://stackoverflow.com/questions/22425132
复制相似问题