標籤:android blog class code java ext width color get string 檔案
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
//UI介面的布局 檔案<br><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= "http://schemas.android.com/tools" android:layout_width= "fill_parent" //填充父元素 線性布局<br> android:layout_height="fill_parent" android:orientation= "vertical" > <EditText android:id= "@+id/UserName" //id名稱方便後台擷取到該控制項名稱來去控制項裡面的值<br> android:layout_width="fill_parent" android:layout_height= "wrap_content" android:ems= "10" android:inputType= "text" > <requestFocus /> </EditText> <EditText android:id= "@+id/Password" android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:inputType= "text" /> <LinearLayout android:layout_width= "fill_parent" android:layout_height= "wrap_content" > <Button android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:onClick= "login" //在該Button按鈕上面綁定onClick()方法 login和後台中的login名稱需要一直,否則將找不到背景方法<br> android:text="登陸" android:width= "80dp" /> <CheckBox android:id= "@+id/saveUserAndPassword" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_marginLeft= "180dp" /> </LinearLayout> </LinearLayout> |
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
package com.example.saveuserandpasswor; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast;<br> /**<br> *類比一個簡單的使用者登入時儲存密碼的功能。該demo 沒有對密碼進行加密,處於安全考慮可以使用MD5或UUID進行密碼加密 --後台代碼<br> */ public class MainActivity extends Activity { private EditText userName; private EditText password; private CheckBox cb; private SharedPreferences sp; // 內容提供者 @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); userName = (EditText) findViewById(R.id.UserName); //擷取ui介面中的空間元素 password = (EditText) findViewById(R.id.Password); cb = (CheckBox) findViewById(R.id.saveUserAndPassword); sp = getSharedPreferences( "save" , MODE_PRIVATE); // 設定儲存資訊的設定檔是私人的檔案,儲存問檔案形式以xml檔案儲存體,其實就是一個map // 集合 String username = sp.getString( "username" , "" ); String pass = sp.getString( "password" , "" ); if (username.length() != 0 && pass.length() != 0 ) { userName.setText(username); password.setText(pass); cb.setChecked( true ); } } public void login(View view) { //在UI介面裡面對Button按鈕進行事件綁定,onclick() 方法<br> String user = userName.getText().toString(); String pass = password.getText().toString(); boolean iscb = cb.isChecked(); Editor editor = sp.edit(); // 擷取編輯器 if (iscb) { // 如果checkbox 被選中則儲存使用者名稱和密碼 editor.putString( "username" , user); editor.putString( "password" , pass); } else { editor.putString( "username" , "" ); editor.putString( "password" , "" ); } editor.commit(); // 登陸完事後將使用者輸入的帳號密碼儲存到設定檔中 Toast.makeText(getApplicationContext(), "登陸成功" , Toast.LENGTH_SHORT) // 操作完成一個時間後執行的操作 .show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true ; } } |