標籤:extends 設計 isp linear klist android ttext alt highlight
登陸頁面配置設計:
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/account" /> <EditText android:id="@+id/edtaccount" android:layout_width="150dp" android:layout_height="wrap_content" android:inputType="number" android:singleLine="true" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/password" /> <EditText android:id="@+id/edtpassword" android:layout_width="150dp" android:layout_height="wrap_content" android:inputType="textPassword" android:singleLine="true" /> </LinearLayout> <Button android:id="@+id/btnlogin" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="@string/login" />
登出頁面配置設計:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="@string/登出頁面" android:textSize="15sp" /> <Button android:id="@+id/btncancel" android:layout_width="200dp" android:layout_height="wrap_content" android:text="@string/cancel" />
LoginActivity.java:
package com.xiaoyan.autologin;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class LoginActivity extends Activity {// 定義組件private EditText edtAccount;private EditText edtPassword;private Button btnLogin;// 用於記錄帳號和密碼private String strAccount = "";private String strPassword = "";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.login_main);// 設定標題setTitle("Login");// 擷取sharedpreferences對象SharedPreferences share = getSharedPreferences("Login",Context.MODE_PRIVATE);strAccount = share.getString("Account", "");strPassword = share.getString("Password", "");// 判斷是否是之前有登入過if (share == null) {init();} else {// 判斷是否剛登出if (share.getBoolean("LoginBool", false)) {// 跳轉到登出頁面並銷毀當前activityIntent intent = new Intent(LoginActivity.this,CancelActivity.class);startActivity(intent);finish();} else {init();}}}private void init() {// 初始化組件edtAccount = (EditText) findViewById(R.id.edtaccount);edtPassword = (EditText) findViewById(R.id.edtpassword);btnLogin = (Button) findViewById(R.id.btnlogin);edtAccount.setText(strAccount);edtPassword.setText(strPassword);// 監聽按鈕btnLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// 判斷帳號和密碼是輸入是否為空白if (edtAccount.getText().toString().equals("")|| edtPassword.getText().toString().equals("")) {Toast.makeText(LoginActivity.this, "帳號或密碼不可為空",Toast.LENGTH_SHORT).show();} else {// 建立SharedPreferences對象用於儲存帳號和密碼,並將其私人化SharedPreferences share = getSharedPreferences("Login",Context.MODE_PRIVATE);// 擷取編輯器來儲存資料到sharedpreferences中Editor editor = share.edit();editor.putString("Account", edtAccount.getText().toString());editor.putString("Password", edtPassword.getText().toString());editor.putBoolean("LoginBool", true);// 將資料提交到sharedpreferences中editor.commit();// 跳轉到登出頁面並銷毀當前activityIntent intent = new Intent(LoginActivity.this,CancelActivity.class);startActivity(intent);finish();}}});}}
CancelActivity.java:
package com.xiaoyan.autologin;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.Button;public class CancelActivity extends Activity {// 定義組件private Button btnCancel;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.cancel_activity);// 設定標題setTitle("Cancel");// 初始化頁面init();}private void init() {// 初始化組件btnCancel = (Button) findViewById(R.id.btncancel);// 監聽登出按鈕btnCancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub// 登出帳號並銷毀當前頁面SharedPreferences share = getSharedPreferences("Login",Context.MODE_PRIVATE);share.edit().putBoolean("LoginBool", false).commit();Intent intent = new Intent(CancelActivity.this,LoginActivity.class);startActivity(intent);finish();}});}}
Android自動登入功能的實現