Welcome to

Vcode

首页 / Android / SharedPreferences小应用

SharedPreferences小应用

  1. 布局代码

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.intaj.MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="用户名" />

    <EditText
        android:id="@+id/edname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="20dp"
        android:ems="10"
        android:inputType="textPersonName" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/edname"
        android:layout_marginTop="35dp"
        android:layout_toLeftOf="@+id/edname"
        android:text="密码" />

    <EditText
        android:id="@+id/edpassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignLeft="@+id/edname"
        android:ems="10"
        android:inputType="textPersonName" />

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="56dp"
        android:text="记住账号" />

    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:onClick="doclick"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/edpassword"
        android:layout_centerVertical="true"
        android:text="登陆" />

    <Button
        android:id="@+id/cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/login"
        android:layout_alignRight="@+id/edpassword"
        android:text="取消" />

</RelativeLayout>

    2.登陆保存账户的小测试

package com.example.intaj;

import android.support.v7.app.ActionBarActivity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {
	
	Button login;  //登陆按钮
	EditText ename,epwd;//账户,密码编辑框
	CheckBox c1;//是否勾选记住用户
	Editor editor;
	SharedPreferences sp; //轻量级 信息存储
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ename=(EditText) findViewById(R.id.edname);
        epwd=(EditText) findViewById(R.id.edpassword);
        c1=(CheckBox) findViewById(R.id.checkBox1);
        sp=getSharedPreferences("userinfo", MODE_PRIVATE);//创建XML文件保存信息
        editor=sp.edit();//一定要记得初始化
        editor.putString("userName","admin");//设置 账户和密码
        editor.putString("userPwd","admin");
        editor.commit();
        
    }
    public void doclick(View v)
    {
    	switch(v.getId()){
    	case R.id.login:
    		String name=ename.getText().toString();
    		String pwd=epwd.getText().toString();
    		if(name.equals(sp.getString("userName", "")) && pwd.equals(sp.getString("userPwd", "")) )
    		{
    			if(c1.isChecked())//选中
    			{
    			//	editor=sp.edit();
    				editor.putString("adminname", name); //记住 保存用户名
    				
    				editor.commit();
    				Toast.makeText(MainActivity.this,"Remmbered and Login Successed", Toast.LENGTH_SHORT).show();
    			}
    			else
    			{
    				if(null!=sp.getString("adminname", ""))
    				{
    					editor.remove(name);
        				editor.commit();
    				}
    				Toast.makeText(MainActivity.this,"Success", Toast.LENGTH_SHORT).show();
    				
    			}
    			
    		}
    		else
    			Toast.makeText(MainActivity.this,"Fail", Toast.LENGTH_SHORT).show();
    		break;
    	case R.id.cancel:
                       //-----***————
    		break;
    	}
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

结语:并不是所有时候都需要用到SQLlite的,有些数据量较少时,可用SharedPreferences保存数据,减少负担,及增加运行效率。

本文暂无评论

发表评论

您的电子邮件地址不会被发布。

>> <<