使用共享偏好的登录页面[重复]

Posted

技术标签:

【中文标题】使用共享偏好的登录页面[重复]【英文标题】:login page using shared preference [duplicate] 【发布时间】:2015-12-02 16:10:36 【问题描述】:
package com.trid.sharedtask;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener 
    TextView userName, password;
    Button ok, cancel;
    SharedPreferences shared;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        userName = (TextView) findViewById(R.id.userName);
        password = (TextView) findViewById(R.id.password);
        ok = (Button) findViewById(R.id.ok);
        cancel = (Button) findViewById(R.id.cancel);

        userName.setText(shared.getString("key1", ""));
        password.setText(shared.getString("key1", ""));

        ok.setOnClickListener(this);
    

    @Override
    public void onClick(View v) 
        Intent intent = new Intent(getApplicationContext(), Activity2.class);
        startActivity(intent);
        SharedPreferences shared = getPreferences(Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = shared.edit();
        editor.putString("key1", userName.getText().toString().trim());
        editor.putString("key2", password.getText().toString().trim());
        editor.commit();

    


我必须使用共享偏好创建登录页面。如果用户第一次进入活动,用户名和密码应存储在共享首选项中。如果用户连续输入,则共享首选项将数据提取到用户名和密码。

感谢您的帮助...!

【问题讨论】:

有什么问题? 【参考方案1】:

首先,您将检查共享偏好的值。您将默认值保留为空白或任何您想要的。如果共享首选项返回空白值,那么您将存储详细信息,否则您将获取详细信息并与当前值进行比较。

【讨论】:

【参考方案2】:

在 Onclick 方法中,使用 contains("key") 方法检查键是否存在于 sharedpreference 中:

@Override
public void onClick(View v) 
    Intent intent = new Intent(getApplicationContext(), Activity2.class);
    startActivity(intent);
    SharedPreferences shared = getPreferences(Context.MODE_PRIVATE);
    if(shared.contains("username") && shared.contains("password"))

     //Get data from shared preference here and do whatever you want
     else 

    SharedPreferences.Editor editor = shared.edit();
    editor.putString("key1", userName.getText().toString().trim());
    editor.putString("key2", password.getText().toString().trim());
    editor.commit();
    

【讨论】:

以上是关于使用共享偏好的登录页面[重复]的主要内容,如果未能解决你的问题,请参考以下文章

登录页面验证 [重复]

如何在phoneGap中保持会话

意外错误转发或重定向到登录页面[重复]

带有帐户激活检查的 PHP 登录页面 [重复]

2013 年 3 月:Paypal Sandbox 登录循环返回开发者页面 [重复]

页面查看器 webpart 不会采用登录参数