Android studio 利用共享存儲進行用戶的註冊和登錄驗證功能
//註冊功能 public class MainActivity extends AppCompatActivity { //聲明共享存儲(全局變量) private SharedPreferences spf; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //在打開頁面時初始化共享存儲對象spf "users"表名 spf=getSharedPreferences("users", Context.MODE_PRIVATE); } /** * 註冊 * key : value * @param view */ public void register(View view){ //獲取頁面視圖組件 EditText accountEt = findViewById(R.id.account); EditText passwordEt = findViewById(R.id.password); EditText repwdEt = findViewById(R.id.repwd); //獲取用戶名和密碼 String account =accountEt.getText().toString(); String password =passwordEt.getText().toString(); String repwd=repwdEt.getText().toString(); //表單驗證 //判斷用戶名是否為空 if (account!=null && !"".equals(account)){ //用戶名不為空 //比較輸入的用戶名是否已經被註冊存在 if (account.equals(spf.getString("account",""))){ //用戶名已存在 //Toast.makeText(MainActivity.this, "該用戶名已存在!", Toast.LENGTH_SHORT).show(); showDialog("該用戶名已經存在"); return;//終止方法執行 } }else{ //用戶名為空 //Toast方法適用於不嚴重的提醒情況 content:上下文 text:提示的信息內容 //Toast.makeText(MainActivity.this, "用戶姓名不能為空!", Toast.LENGTH_SHORT).show(); showDialog("用戶名不能為空!"); return;//終止方法執行 } //密碼驗證 //判斷密碼是否為空 if (password==null || "".equals(password)){ //判斷密碼不能為空 //Toast.makeText(MainActivity.this, "密碼不能為空!", Toast.LENGTH_SHORT).show(); showDialog("密碼不能為空"); return; } //驗證兩次密碼是否相同 if (!password.equals(repwd)){ //Toast.makeText(MainActivity.this, "兩次密碼不一致!", Toast.LENGTH_SHORT).show(); showDialog("兩次密碼不一致"); return; } //保存用戶名和密碼 SharedPreferences.Editor editor=spf.edit(); editor.putString("account",account);//賬號名 editor.putString("password",password);//密碼 editor.apply();//提交數據 Toast.makeText(MainActivity.this, "註冊成功!", Toast.LENGTH_SHORT).show(); //跳轉到登錄頁面 Intent intent=new Intent(MainActivity.this,LoginActivity.class); startActivity(intent); } //設置提示框 public void showDialog(String msg){ //1、創建AlertDialog.Builder對象 AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); //2、設置提示窗口相關信息 builder.setTitle("提示"); builder.setMessage(msg);//提示信息 builder.setPositiveButton("確認", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); builder.setCancelable(false);//點擊空白區域不能被關掉 true能被關掉 builder.show();//顯示提示框 } }
//註冊頁面佈局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical" android:padding="20dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="註冊" android:gravity="center_horizontal" android:textSize="50sp"/> <EditText android:id="@+id/account" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:hint="請輸入賬號名" android:textSize="20sp"/> <EditText android:id="@+id/password" android:inputType="textPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:hint="請輸入密碼" android:textSize="20sp"/> <EditText android:id="@+id/repwd" android:inputType="textPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:hint="請確認密碼" android:textSize="20sp"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="確認註冊" android:textSize="30sp" android:layout_marginTop="20dp" android:onClick="register"/> </LinearLayout>
//登錄頁面功能 public class LoginActivity extends AppCompatActivity { //聲明共享存儲(全局變量) private SharedPreferences spf; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); //在打開頁面時初始化共享存儲對象spf "users"表名 spf=getSharedPreferences("users", Context.MODE_PRIVATE); } /** * 登錄 * @param view */ public void login(View view){ //獲取頁面視圖組件 EditText accountEt=findViewById(R.id.account); EditText passwordEt=findViewById(R.id.password); //獲取用戶名 String account=accountEt.getText().toString(); String password=passwordEt.getText().toString(); //表單驗證 //判斷用戶名是否為空 if (account==null || "".equals(account)){ showDialog("用戶名不能為空!"); return; } //判斷密碼是否為空 if (password==null || "".equals(password)){ showDialog("密碼不能為空!"); return; } //驗證登錄,將用戶輸入的用戶名和密碼和共享存儲裡面的內容進行比對 if (account.equals(spf.getString("account",""))&& password.equals(spf.getString("password",""))){ showDialog("登錄成功!"); //登錄成功後跳轉到首頁 Intent intent=new Intent(LoginActivity.this,HomeActivity.class); //傳遞登錄成功的用戶名 intent.putExtra("account",account); startActivity(intent); }else{ showDialog("用戶名或密碼輸入錯誤!"); } } //設置提示框 public void showDialog(String msg){ //1、創建AlertDialog.Builder對象 AlertDialog.Builder builder=new AlertDialog.Builder(LoginActivity.this); //2、設置提示窗口相關信息 builder.setTitle("提示"); builder.setMessage(msg);//提示信息 builder.setPositiveButton("確認", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); builder.setCancelable(false);//點擊空白區域不能被關掉 true能被關掉 builder.show();//顯示提示框 } }
//登錄頁面佈局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".LoginActivity" android:padding="20dp"> <TextView android:id="@+id/register" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登錄" android:textSize="40sp" android:gravity="center_horizontal"/> <EditText android:id="@+id/account" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:hint="請輸入賬號名" android:layout_below="@id/register" android:textSize="20sp"/> <EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:hint="請輸入密碼" android:textSize="20sp" android:layout_below="@id/account"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="確認登錄" android:textSize="30sp" android:layout_marginTop="20dp" android:layout_below="@id/password" android:onClick="login"/> </RelativeLayout>
//首頁顯示歡迎信息 public class HomeActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); //獲取意圖 Intent intent=getIntent(); String account=intent.getStringExtra("account"); //頁面上顯示傳遞的內容 //設置歡迎信息 TextView tv=findViewById(R.id.welcomMessage); tv.setText("歡迎"+account+"登錄本系統!"); } }
//首頁佈局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".HomeActivity" android:orientation="vertical" android:padding="20dp"> <TextView android:id="@+id/welcomMessage" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="35dp" android:gravity="center_horizontal" android:textColor="#99CCFF"/> </LinearLayout>
用戶註冊信息:
到此這篇關於Android studio 利用共享存儲進行用戶的註冊和登錄驗證的文章就介紹到這瞭,更多相關Android studio 註冊和登錄驗證內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Android中Activity組件實例介紹
- Android 使用 SharedPreferences 保存少量數據的實現代碼
- Android移動應用開發指南之六種佈局詳解
- Android生成隨機數的方法實例
- Android實現頁面跳轉的全過程記錄