Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 用戶登錄保存數據實例(慕課筆記 使用SharedPreferences保存用戶名),sharedpreferences

用戶登錄保存數據實例(慕課筆記 使用SharedPreferences保存用戶名),sharedpreferences

編輯:關於android開發

用戶登錄保存數據實例(慕課筆記 使用SharedPreferences保存用戶名),sharedpreferences


學習視頻之後自己操作時的筆記。

0.視頻地址:http://www.imooc.com/video/3265

1.功能預覽:

說明:1)輸入錯誤用戶名和密碼,點擊登錄,彈出提示框“禁止登錄”;

        2)輸入正確用戶名和密碼,點擊登錄,彈出提示框“登錄成功”;

        3)輸入正確用戶名和密碼,並且勾選保存用戶名,點擊登錄,彈出框顯示“登錄成功”,退出APP,再次打開,用戶名已有。

2.具體布局:

 activity_main.xml:

<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"
    tools:context=".MainActivity" >

     <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="16dp"
        android:text="用戶名:" />

    <EditText
        android:id="@+id/etuserName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/textView1"
        android:layout_toRightOf="@+id/textView1"
        android:ems="10" />

    <TextView
        android:id="@+id/aa"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/etuserName"
        android:text="密        碼" />

    <EditText
        android:id="@+id/etuserPass"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/etuserName"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/aa"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/btnLogin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/etuserPass"
        android:layout_marginTop="62dp"
        android:onClick="doClick"
        android:text="登陸" />

    <Button
        android:id="@+id/btnCancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btnLogin"
        android:layout_alignBottom="@+id/btnLogin"
        android:layout_toRightOf="@+id/btnLogin"
        android:onClick="doClick"
        android:text="取消" />

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/btnCancel"
        android:layout_below="@+id/etuserPass"
        android:layout_marginTop="15dp"
        android:checked="false"
        android:text="保存用戶名" />
    
</RelativeLayout>
View Code

 

3.MainActivity.java:

public class MainActivity extends Activity {
    EditText etUserName,etUserPass;
    CheckBox chk;
    SharedPreferences pref;
    Editor editor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //綁定對應布局控件
        etUserName=(EditText)findViewById(R.id.etuserName);
        etUserPass=(EditText)findViewById(R.id.etuserPass);
        chk=(CheckBox)findViewById(R.id.checkBox1);
        pref=getSharedPreferences("UserInfo",MODE_PRIVATE);
        editor=pref.edit();
        String name=pref.getString("userName", "");
        
        if(name==null){
            chk.setChecked(false);
        }else{
            chk.setChecked(true);
            etUserName.setText(name);
        }
    }
//為按鈕添加響應
public void doClick(View v){
    switch(v.getId()){
    case R.id.btnLogin:
        //轉成字符串進行判斷
        String name=etUserName.getText().toString().trim();
        String pass=etUserPass.getText().toString().trim();
        if("admin".equals(name)&&"123456".equals(pass)){
            if(chk.isChecked()){
                //用戶名與密碼均正確且保存用戶名確認框處於選,
                //則保存數據並提交到數據庫
                editor.putString("userName", name);
                editor.commit();
            }else{
                editor.remove("userName");
                editor.commit();
            }
            //加信息提示框
            Toast.makeText(MainActivity.this, "登錄成功", 
                    Toast.LENGTH_LONG).show();
            }else{Toast.makeText(MainActivity.this, "禁止登錄", 
                Toast.LENGTH_LONG).show();    
        }
        break;
        default:
            break;
    }
}
    
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved