同样先写好登录界面的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请输入账号" />
<EditText
android:id="@+id/ed_zhanghao"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请输入密码" />
<EditText
android:id="@+id/ed_mima"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="记住密码"/>
<Button
android:onClick="denglu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="登录"/>
</RelativeLayout>
</LinearLayout>
界面如下图:然后创建一个类用SharedPreferences方法保存账号密码:
package com.xh.tx.denglu.service;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Environment;
public class Servicein {
public static void serviceinfo(Context context,String zhanghao,String mima){
SharedPreferences sp = context.getSharedPreferences("config", context.MODE_PRIVATE);
//得到一个sp的编辑器
Editor editor = sp.edit();
editor.putString("zhanghao", zhanghao);
editor.putString("mima", mima);
//类似于数据库的事务,保证数据同时提交成功
editor.commit();
}
}
最后在主代码里写好,调出SharedPreferences保存的内容package com.xh.tx.denglu;
import java.util.Map;
import com.xh.tx.SharePerference.R;
import com.xh.tx.denglu.service.Servicein;
import android.os.Bundle;
import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText ed_zhanghao;
private EditText ed_mima;
private CheckBox cb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed_zhanghao = (EditText) findViewById(R.id.ed_zhanghao);
ed_mima = (EditText) findViewById(R.id.ed_mima);
cb = (CheckBox) findViewById(R.id.cb);
SharedPreferences sp = getSharedPreferences("config", Context.MODE_PRIVATE);
String zhanghao=sp.getString("zhanghao", "");
ed_zhanghao.setText(zhanghao);
String mima=sp.getString("mima", "");
ed_mima.setText(mima);
}
public void denglu(View v){
String zhanghao = ed_zhanghao.getText().toString().trim();
String mima = ed_mima.getText().toString().trim();
if(TextUtils.isEmpty(zhanghao)||TextUtils.isEmpty(mima)){
Toast.makeText(this, "账号或者密码不能为空", Toast.LENGTH_SHORT).show();
}else{
if(cb.isChecked()){
Servicein.serviceinfo(this,zhanghao,mima);
Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
}
if("zhangsan".equals(zhanghao)&&"123456".equals(mima)){
Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "登录失败", Toast.LENGTH_SHORT).show();
}
}
}
}