首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记得在Android中点击

记得在Android中点击
EN

Stack Overflow用户
提问于 2014-03-15 14:36:13
回答 3查看 323关注 0票数 1

我已经创建了一个应该只显示一次的活动。在这个活动中,我添加了一个按钮,然后单击它的关闭,当应用程序再次启动时,它将不再重新打开。我曾想过使用SharedPreferences,但没有得到想要的结果。

我以共享的方式记忆数据:

代码语言:javascript
复制
@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()中调用共享,如果存在数据,请不要打开该活动:

代码语言:javascript
复制
    //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);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-15 14:45:30

创建这样的共享偏好类:

代码语言:javascript
复制
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活动上,检查服务是否存在,这样就不会显示和退出。

代码语言:javascript
复制
 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并像这样保存服务。

代码语言:javascript
复制
 public static MyPreference  myPref = new MyPreference(this);
 myPref.saveService("this is not first time");
票数 0
EN

Stack Overflow用户

发布于 2014-03-15 14:49:13

尝试使用下面的代码

代码语言:javascript
复制
// 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;
}
票数 0
EN

Stack Overflow用户

发布于 2016-02-10 11:56:52

我有四项活动

  1. 飞溅
  2. 有两个按钮和一个CheckBox (记得我)3& 4。

如果我使用复选框选中“记住我”选项,那么我必须记住我单击的按钮,然后在下一次开始时直接启动第3或第4项活动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22425132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档