为什么第二次登录,并不没有自动输入用户名密码?
package com.example.storagedemo;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class ShareActivity extends AppCompatActivity {
private EditText accEdt,pwdEdt;//帐号、密码 输入框
private Button login_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_share);
accEdt=findViewById(R.id.account_et);
pwdEdt=findViewById(R.id.password_et);
login_btn=findViewById(R.id.login_btn);
/*第一次登录时,输入框里的内容为空,即为获得myshare文件中无该键值,显示参数2(空字符串)
* 登录成功后(用户名和密码都正确后),则记录到myShare文件中,
* 以后每次进入该页面,两个输入框则保留正确登录记录*/
// SharePreference的读取
// (1)获取SharePrefence对象(参数1:文件名 参数2:模式)
SharedPreferences share=getSharedPreferences("myshare",MODE_PRIVATE);
// (2)获取键值为account和pwd的内容,若无该键值,则读取参数2
String accStr=share.getString("account","");
String pwdStr=share.getString("pwd","");
// (3)赋值给两个输入框控件accEdt、pwdEdt
accEdt.setText(accStr);
pwdEdt.setText(pwdStr);
// 获取输入框内容,校对是否等同用户名密码
login_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//1 获取输入框内容
String account=accEdt.getText().toString();
String pwd=pwdEdt.getText().toString();
//2 验证(admin 123)
if(account.equals("admin")&&pwd.equals("123")){
// 2.1存储信息到SharePreference
// (1)获取SharePreference对象(参数1:文件名 参数2:模式),如果不存在则创建,已存在直接打开文件.xml
SharedPreferences share=getSharedPreferences("myShare",MODE_PRIVATE);
// (2)获取Editor对象
SharedPreferences.Editor edt=share.edit();
// (3)存储信息
edt.putString("account",account);
edt.putString("pwd",pwd);
// (4)提交操作
Toast.makeText(ShareActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
}else{
//2.2 验证失败,提示用户
Toast.makeText(ShareActivity.this,"信息输入错误,登录失败",Toast.LENGTH_SHORT).show();
}
}
});
}
}
老师,以上是我的代码,但是成功登录后,第二次登录输入框依然为空,并不提示用户名密码。Android-Tool Windows-Device File Explorer看不到任何文件,进入手机里data下面也没有查看到相应的myshare文件?
正在回答
向edt存储数据后,别忘记调用commit()方法提交操作,否则数据修改无效。
- 参与学习 人
- 提交作业 307 份
- 解答问题 1613 个
本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星