Android實(shí)現(xiàn)簡易登陸注冊邏輯的實(shí)例代碼
大家好,今天給大家?guī)鞟ndroid制作登錄和注冊功能的實(shí)現(xiàn),當(dāng)我們面臨制作登錄和注冊功能的實(shí)現(xiàn)時,我們需要先設(shè)計登錄界面的布局和注冊界面的布局,做到有完整的思路時才開始實(shí)現(xiàn)其功能效果會更好。
activity_login
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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"> <TextView android:id="@+id/tv_username" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_marginStart="40dp" android:layout_marginTop="100dp" android:gravity="center_vertical" android:text="賬號:" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/tv_password" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_marginStart="40dp" android:gravity="center_vertical" android:text="密碼:" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/tv_username" /> <EditText android:id="@+id/ed_username" android:layout_width="300dp" android:layout_height="40dp" android:layout_marginTop="100dp" app:layout_constraintLeft_toRightOf="@id/tv_username" app:layout_constraintTop_toTopOf="parent" /> <EditText android:id="@+id/ed_password" android:layout_width="300dp" android:inputType="textPassword" android:layout_height="40dp" app:layout_constraintLeft_toRightOf="@id/tv_password" app:layout_constraintTop_toBottomOf="@id/ed_username" /> <Button android:id="@+id/bu_login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="300dp" android:text="登錄" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@id/bu_register" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/bu_register" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="300dp" android:text="注冊" app:layout_constraintLeft_toRightOf="@id/bu_login" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
LoginActivity
package com.jld.exam; import android.content.Intent; import android.os.Bundle; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class LoginActivity extends AppCompatActivity { EditText ed_username; EditText ed_password; Button bu_login; Button bu_register; String username; String password; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ed_username = findViewById(R.id.ed_username); ed_password = findViewById(R.id.ed_password); bu_login = findViewById(R.id.bu_login); bu_register = findViewById(R.id.bu_register); //登錄按鈕監(jiān)聽 bu_login.setOnClickListener(v -> { username = ed_username.getText().toString(); password = ed_password.getText().toString(); //登陸的簡單邏輯 if (username.equals("")) { Toast.makeText(LoginActivity.this, "請輸入用戶名", Toast.LENGTH_SHORT).show(); } else if (password.equals("")) { Toast.makeText(LoginActivity.this, "請輸入密碼", Toast.LENGTH_SHORT).show(); } else if (!username.equals("root") || !password.equals("123456")) { Toast.makeText(LoginActivity.this, "用戶名或密碼錯誤", Toast.LENGTH_SHORT).show(); } else { Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); } }); //注冊按鈕監(jiān)聽 bu_register.setOnClickListener(v -> { Intent intent = new Intent(LoginActivity.this, RegisterActivity.class); startActivity(intent); }); } }
activity_main
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="商品列表" android:layout_marginBottom="30dp" android:gravity="center_horizontal"/> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
MainActivity
package com.jld.exam; import android.graphics.Color; import android.os.Bundle; import android.widget.LinearLayout; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; public class MainActivity extends AppCompatActivity { RecyclerViewAdapter recyclerViewAdapter; private final int[] icno = {R.drawable.clock, R.drawable.signal, R.drawable.box, R.drawable.second, R.drawable.elephone, R.drawable.ff, R.drawable.notebook, R.drawable.mark, R.drawable.yx, R.drawable.shop, R.drawable.theme, R.drawable.xl,}; private final String[] name = {"時鐘", "信號", "寶箱", "秒鐘", "大象", "FF", "記事本", "書簽", "印象", "商店", "主題", "迅雷"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//GridLayoutManager GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.this, 3);//創(chuàng)建recyclerview RecyclerView recyclerView = findViewById(R.id.recycler);//設(shè)定布局管理器 recyclerView.setLayoutManager(gridLayoutManager);//創(chuàng)建適配器 recyclerViewAdapter = new RecyclerViewAdapter(icno, name); recyclerView.setAdapter(recyclerViewAdapter);//設(shè)定適配器 } }
activity_register
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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=".RegisterActivity"> <TextView android:id="@+id/textView0" android:layout_width="match_parent" android:layout_height="60dp" android:gravity="center" android:text="用戶注冊" android:textSize="30sp" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/textView1" android:layout_width="100dp" android:layout_height="40dp" android:drawableStart="@drawable/account" android:gravity="center_vertical" android:text="用戶名:" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/textView0" /> <EditText android:id="@+id/editText1" android:layout_width="300dp" android:layout_height="40dp" android:layout_weight="10" android:autofillHints="" android:gravity="center_horizontal" android:inputType="text" app:layout_constraintLeft_toRightOf="@id/textView1" app:layout_constraintTop_toBottomOf="@id/textView0" /> <TextView android:id="@+id/textView2" android:layout_width="100dp" android:layout_height="40dp" android:layout_weight="2" android:drawableStart="@drawable/password" android:gravity="center_vertical" android:text="新密碼:" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/textView1" /> <EditText android:id="@+id/editText2" android:layout_width="300dp" android:layout_height="40dp" android:layout_weight="10" android:autofillHints="" android:gravity="center_horizontal" android:inputType="textPassword" app:layout_constraintLeft_toRightOf="@id/textView2" app:layout_constraintTop_toBottomOf="@id/editText1" /> <TextView android:id="@+id/textView5" android:layout_width="100dp" android:layout_height="40dp" android:drawableStart="@drawable/phone" android:gravity="center_vertical" android:text="手機(jī)電話:" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/textView2" /> <EditText android:id="@+id/editText5" android:layout_width="300dp" android:layout_height="40dp" android:layout_weight="10" android:autofillHints="" android:gravity="center_horizontal" android:inputType="phone" app:layout_constraintLeft_toRightOf="@id/textView5" app:layout_constraintTop_toBottomOf="@id/editText2" /> <TextView android:id="@+id/textView7" android:layout_width="100dp" android:layout_height="40dp" android:drawableStart="@drawable/email" android:gravity="center_vertical" android:text="E_mail:" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/editText5" /> <EditText android:id="@+id/editText7" android:layout_width="300dp" android:layout_height="40dp" android:layout_weight="10" android:autofillHints="" android:gravity="center_horizontal" android:inputType="textEmailAddress" app:layout_constraintLeft_toRightOf="@id/textView7" app:layout_constraintTop_toBottomOf="@id/editText5" /> <TextView android:id="@+id/textView8" android:layout_width="100dp" android:layout_height="40dp" android:drawableStart="@drawable/gender" android:gravity="center_vertical" android:text="性別:" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/textView7" /> <RadioGroup android:id="@+id/radioGroup8" android:layout_width="300dp" android:layout_height="40dp" android:layout_weight="10" android:gravity="center_vertical" android:orientation="horizontal" app:layout_constraintLeft_toRightOf="@id/textView8" app:layout_constraintTop_toBottomOf="@id/editText7"> <RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" /> <RadioButton android:id="@+id/radioButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" /> </RadioGroup> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:text="保存" app:layout_constraintEnd_toStartOf="@id/button2" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/radioGroup8" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:text="取消" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/button1" app:layout_constraintTop_toBottomOf="@id/radioGroup8" /> </androidx.constraintlayout.widget.ConstraintLayout>
RegisterActivity
package com.jld.exam; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class RegisterActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); } }
recyc_item
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/iv_image" android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center_horizontal" android:contentDescription="TODO" android:scaleType="centerInside" android:src="@drawable/ic_launcher_background" /> <TextView android:id="@+id/tv_desc" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:hint="銷售價格" android:textSize="14sp" /> </LinearLayout>
RecyclerViewAdapter
package com.jld.exam; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> { private final int[] icno; private final String[] desc; public RecyclerViewAdapter(int[] icno, String[] desc) { this.icno = icno; this.desc = desc; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyc_item, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { holder.imageView.setImageResource(icno[position]); holder.textView.setText(desc[position]); } @Override public int getItemCount() { return icno.length; } //ViewHolder public static class ViewHolder extends RecyclerView.ViewHolder { View item; ImageView imageView; TextView textView; public ViewHolder(@NonNull View itemView) { super(itemView); item = itemView; imageView = itemView.findViewById(R.id.iv_image); textView = itemView.findViewById(R.id.tv_desc); } } }
總結(jié)
到此這篇關(guān)于Android實(shí)現(xiàn)簡易登陸注冊邏輯的文章就介紹到這了,更多相關(guān)Android登陸注冊邏輯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android開發(fā):淺談MVP模式應(yīng)用與內(nèi)存泄漏問題解決
本篇文章主要介紹了Android開發(fā):MVP模式應(yīng)用與內(nèi)存泄漏問題解決,具有一定的參考價值,有需要的可以了解一下。2016-11-11Android栗子の圖片驗(yàn)證碼生成實(shí)例代碼
這篇文章主要介紹了Android栗子の圖片驗(yàn)證碼生成實(shí)例代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-12-12詳解android特性之CoordinatorLayout用法探析實(shí)例
本篇文章主要介紹了android特性之CoordinatorLayout用法探析實(shí)例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02Android底部導(dǎo)航欄的三種風(fēng)格實(shí)現(xiàn)
這篇文章主要介紹了Android底部導(dǎo)航欄的三種風(fēng)格實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Android編程獲取設(shè)備MAC地址的實(shí)現(xiàn)方法
這篇文章主要介紹了Android編程獲取設(shè)備MAC地址的實(shí)現(xiàn)方法,涉及Android針對硬件設(shè)備的操作技巧,需要的朋友可以參考下2017-01-01Android Studio 報Integer types not allowed錯誤
本文給大家分享的是在使用Android Studio的過程中遇到的報Integer types not allowed錯誤的分析及解決方法,非常實(shí)用,有需要的小伙伴可以參考下2017-10-10