您的位置:首页 > 移动开发 > Android开发

Android SharedPreferences应用 实现本地注册登陆 功能简单易懂(实例)

2013-06-19 16:22 1001 查看
SharedPreferences

在Android系统中,这些信息以XML文件的形式保存在 /data/data/PACKAGE_NAME /shared_prefs 目录下

先贴个效果图











这个是自己的手机截图,部分手机分辨率可能不一样

1.

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/login" >
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>

<TableRow>

<TextView
android:layout_width="90px"
android:layout_height="wrap_content"
android:layout_marginLeft="50px"
android:layout_marginTop="200px"
android:gravity="center_horizontal"
android:text="用户名:"
android:textColor="#f00"
android:textSize="15sp" />

<EditText
android:id="@+id/username"
android:layout_width="250px"
android:layout_height="wrap_content"
android:layout_marginTop="200px"
android:singleLine="true" />
</TableRow>

<TableRow>

<TextView
android:layout_width="90px"
android:layout_height="wrap_content"
android:layout_marginLeft="50px"
android:gravity="center_horizontal"
android:text="密码:"
android:textColor="#f00"
android:textSize="15sp" />

<EditText
android:id="@+id/password"
android:layout_width="250px"
android:layout_height="wrap_content"
android:password="true" />
</TableRow>
</TableLayout>
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TableRow>
<Button
android:id="@+id/login"
android:layout_width="90px"
android:layout_height="wrap_content"
android:layout_marginLeft="130px"
android:layout_marginTop="30px"
android:gravity="center"
android:text="登录" />
<Button
android:id="@+id/exit"
android:layout_width="90px"
android:layout_height="wrap_content"
android:text="退出"
android:gravity="center"
android:layout_marginLeft="80px"
android:layout_marginTop="30px"
/>
</TableRow>
</TableLayout>
<Button
android:id="@+id/reg"
android:layout_width="90px"
android:layout_height="wrap_content"
android:text="注册"
android:gravity="center"
android:layout_marginLeft="130px"
></Button>
</LinearLayout>

2.activity_loginok.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/mei" >

</LinearLayout>
MainActivity.java


package com.example.logineasydemo;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
//声明需要的组件
private  Button login,exit,reg;
private  EditText   username,password;
private SharedPreferences share;//声明SharedPreferences
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intiview();//初始化视图,寻找id
saveuser();//先保存一个数据admin 123456
exit.setOnClickListener(new Listenerimp());//退出的监听事件
reg.setOnClickListener(new RegListenerimp());//注册的监听事件
//登陆的事件监听处理内部类
login.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//获取输入的信息
String name=username.getText().toString();
String pass=password.getText().toString();
//判断输入信息是否为空
if(name.trim().equals("") || pass.trim().equals("")) {
Toast.makeText(MainActivity.this, "用户名和密码不能为空", Toast.LENGTH_LONG).show();
}
//获取保存文件中的用户名和密码
String savedUsername = share.getString("username","");
String savedPassword = share.getString("password","");
//查看输入的密码和名字是否一致
if(name.trim().equals(savedUsername) && pass.trim().equals(savedPassword)) {
Toast.makeText(MainActivity.this, "恭喜,亲,用户名和密码都正确!", Toast.LENGTH_LONG).show();

//成功登陆,进入LoginokActivity界面
Intent intent=new Intent(MainActivity.this,LoginokActivity.class);
startActivity(intent);
finish();

} else {
//错误的话
Toast.makeText(MainActivity.this, "用户名或者密码错误,请确认信息或者去注册", Toast.LENGTH_LONG).show();
return;
}
}
});
}
private class Listenerimp implements  OnClickListener{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();//结束一个Activity
}
}
private class  RegListenerimp implements OnClickListener{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//定义两个字符串常量,并获取信息
final String nam=username.getText().toString();
final String pas=password.getText().toString();
//判读信息是否空
if(nam.trim().equals("") || pas.trim().equals("")) {
Toast.makeText(MainActivity.this, "注册时,用户名和密码都不能为空", Toast.LENGTH_LONG).show();
return;//为空就会返回
}
//进入注册的Dialog
Dialog dialog=new AlertDialog.Builder(MainActivity.this)
.setTitle("注册")
.setMessage("你确定注册信息吗?")
.setPositiveButton("确定", new  DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
//保存输入的信息 	 Editor 别忘了		edit.commit();提交
share=getSharedPreferences("info",Activity.MODE_PRIVATE);
Editor edit=share.edit();
edit.putString("username", nam);
edit.putString("password", pas);
edit.commit();
//提示成功注册
Toast.makeText(MainActivity.this, "恭喜,注册成功", Toast.LENGTH_LONG).show();

}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).create();//创建一个dialog
dialog.show();//显示对话框,否者不成功
}

}

//实现写一个admin 123456的用户
private void saveuser() {
// TODO Auto-generated method stub
share=getSharedPreferences("info",Activity.MODE_PRIVATE);
Editor edit=share.edit();
edit.putString("username", "admin");
edit.putString("password", "123456");
edit.commit();
}

private void intiview() {
// TODO Auto-generated method stub
login=(Button)findViewById(R.id.login);
exit=(Button)findViewById(R.id.exit);
reg=(Button)findViewById(R.id.reg);
username=(EditText)findViewById(R.id.username);
password=(EditText)findViewById(R.id.password);
}
}

LoginokActivity

package com.example.logineasydemo;

import android.app.Activity;
import android.os.Bundle;

public class LoginokActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loginok);
}
}


代码上传,欢迎下载http://download.csdn.net/detail/h1028962069/5615549
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐