请记住在Android中点击

时间:2014-03-15 14:36:14

标签: android button android-activity

我创建的活动应该只显示一次。在此活动中,我添加了一个按钮,然后单击其关闭,并在再次启动应用程序时不再重新打开。我想过使用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()中调用Shared,如果数据存在则不打开活动:

    //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);

3 个答案:

答案 0 :(得分:0)

像这样创建共享偏好类:

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();
    }

}

然后On 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

}

继续点击事件并保存这样的服务。

 public static MyPreference  myPref = new MyPreference(this);
 myPref.saveService("this is not first time");

答案 1 :(得分:0)

尝试使用此代码

// 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;
}

答案 2 :(得分:0)

我有四项活动

  1. 飞溅
  2. 有2个按钮和1个CheckBox(记住我) 3& 4.另一项活动
  3. 如果我使用复选框检查记住我选项,那么我必须记住我点击的按钮,然后在下次启动时直接启动第3或第4个活动。