android 登录界面编写

news/2024/12/26 8:48:18/
1、登录页面实现内容

1.实现使用两个EditText输入框输入用户名和密码。

2.使用CheckBox控件记住密码功能。

3.登录时候,验证用户名和密码是否为空。

4.当前CheckBox控件记住密码勾上时,使用SharedPreferences存储用户名和密码。

5.登录时候使用ProgressDialog登录转圈圈2秒,两秒后显示登录成功。

6.默认用户名和密码admin和admin。当用户名和密码输入都是admin就提示登录成功。

2、登录页面布局实现
<?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:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/tvTitle"style="@style/TextView"android:layout_width="match_parent"android:layout_height="80dp"android:layout_marginTop="20dp"android:gravity="center"android:text="登录"android:textSize="24sp"android:textStyle="bold"app:layout_constraintTop_toTopOf="parent" /><LinearLayoutandroid:id="@+id/layoutInput"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="30dp"android:gravity="center"android:orientation="vertical"app:layout_constraintTop_toBottomOf="@id/tvTitle"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"><TextViewstyle="@style/TextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="@dimen/layout_left_distance"android:text="用户名:" /><EditTextandroid:id="@+id/editUser"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginRight="@dimen/layout_right_diatance"android:ems="10" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"><TextViewstyle="@style/TextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="@dimen/layout_left_distance"android:text="密   码:" /><EditTextandroid:id="@+id/editPsw"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginRight="@dimen/layout_right_diatance"android:ems="10"android:inputType="textPassword" /></LinearLayout></LinearLayout><LinearLayoutandroid:id="@+id/layoutCheck"android:layout_width="match_parent"android:layout_height="wrap_content"app:layout_constraintTop_toBottomOf="@id/layoutInput"android:gravity="center"><CheckBoxandroid:id="@+id/checkBoxRemember"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="80dp"android:text="记住密码" /></LinearLayout><Buttonandroid:id="@+id/buttonLogin"style="@style/button"android:layout_width="match_parent"android:layout_height="50dp"android:layout_marginLeft="50dp"android:layout_marginTop="20dp"android:layout_marginRight="50dp"android:text="登录"app:layout_constraintTop_toBottomOf="@id/layoutCheck"tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
3、fragment实现登录界面
public class LoginFragment extends Fragment {private ProgressDialog progressDialog = null;private View rootView;private EditText editUser, editPsw;private CheckBox checkBoxRemember;public LoginFragment() {}@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {rootView = inflater.inflate(R.layout.fragment_loglin, container, false);editUser = rootView.findViewById(R.id.editUser);editPsw = rootView.findViewById(R.id.editPsw);checkBoxRemember = rootView.findViewById(R.id.checkBoxRemember);SharedPreferences sp = getActivity().getSharedPreferences("mmsx", MODE_PRIVATE);editUser.setText(sp.getString("user",""));editPsw.setText(sp.getString("password",""));checkBoxRemember.setChecked(sp.getBoolean("remember",true));View buttonLogin =  rootView.findViewById(R.id.buttonLogin);buttonLogin.setOnClickListener(view -> {String user = editUser.getText().toString();String psw = editPsw.getText().toString();if (user.isEmpty()){Toast.makeText(getActivity(),"请输入用户名", Toast.LENGTH_LONG).show();return;}if (psw.isEmpty()){Toast.makeText(getActivity(),"请输入密码", Toast.LENGTH_LONG).show();return;}if (user.equalsIgnoreCase("admin") && psw.equalsIgnoreCase("admin")){SharedPreferences.Editor edit = Objects.requireNonNull(getActivity()).getSharedPreferences("mmsx", MODE_PRIVATE).edit();if (checkBoxRemember.isChecked()){edit.putString("user", "admin");edit.putString("password", "admin");}else {edit.putString("user", "");edit.putString("password", "");}edit.putBoolean("remember", checkBoxRemember.isChecked());edit.apply();progressDialog=new ProgressDialog(getActivity());progressDialog.setTitle("登录中");progressDialog.setMessage("登录中,请稍后...");progressDialog.setCancelable(true);progressDialog.show();//这里的话新建一个线程,重写run()方法,new Thread(){public void run(){SystemClock.sleep(2000);//把信息码发送给handle让更新界面handler.sendEmptyMessage(123);}}.start();}else {Toast.makeText(getActivity(),"用户名或者密码错误", Toast.LENGTH_LONG).show();}});return rootView;}@SuppressLint("HandlerLeak")Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {if (msg.what == 123) {progressDialog.dismiss();Toast.makeText(getActivity(),"登录成功", Toast.LENGTH_LONG).show();}}};
}
4、实现成果


http://www.ppmy.cn/news/1557935.html

相关文章

日本IT行业|分享实用的开发语言及框架

在日本IT行业中&#xff0c;开发语言与框架的选择非常多样化&#xff0c;但也有一些特定的技术和框架更为流行。以下是对日本IT行业在用的开发语言与框架的详细分享&#xff1a; 开发语言 Java&#xff1a;Java在日本是一门非常稳定且受欢迎的编程语言&#xff0c;很多日本公…

android sqlite 数据库简单封装示例(java)

sqlite 数据库简单封装示例&#xff0c;使用记事本数据库表进行示例。 首先继承SQLiteOpenHelper 使用sql语句进行创建一张表。 public class noteDBHelper extends SQLiteOpenHelper {public noteDBHelper(Context context, String name, SQLiteDatabase.CursorFactory fact…

各种网站(学习资源及其他)

欢迎围观笔者的个人博客~ 也欢迎通过RSS网址https://kangaroogao.github.io/atom.xml进行订阅~ 大学指南 上海交通大学生存手册中国科学技术大学人工智能与数据科学学院本科进阶指南USTC不完全入学指南大学生活质量指北科研论 信息搜集 AI信息搜集USTC飞跃网站计算机保研 技…

服务器中了挖矿病毒-应急响应

事件&#xff1a;客户反映服务器响应很慢&#xff0c;出行卡顿&#xff0c;服务器操作系统为windows server 2008。 现场解决步骤&#xff1a; 1、打开任务管理器&#xff0c;看到一个javs.exe的程序&#xff0c;占用CPU使用率比较高&#xff0c;怀疑可能是木马。 2、右键打开…

Spring Boot 配置Kafka

在Spring Boot中配置Kafka&#xff0c;你需要在application.properties或application.yml文件中设置Kafka的基本属性&#xff0c;并且添加必要的依赖。 以下是一个配置Kafka的基本示例&#xff1a; application.properties配置文件: spring.kafka.bootstrap-serverslocalhos…

flask-admin+Flask-WTF 实现实现增删改查

背景&#xff1a; flask-adminflask-wtf在网上可以搜索到很多资料&#xff0c;但有价值的很少&#xff0c;或许是太简单&#xff0c;或者是很少人这么用&#xff0c;或者。。。&#xff0c;本文将作者近礼拜摸索到的一点经验分享出来&#xff0c;给自己做个记录。 材料&#…

JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介

1. 基本概念 1.1、前言 web开发&#xff1a; web&#xff0c;网页的意思&#xff0c;www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化&#xff01; 动态 web 淘宝&#xff0c;几乎是所有的网站&#xff1b;提供给所有人看的数据始终会发生变化&#xf…

Java 类文件具有错误的版本 65.0, 应为 52.0问题解决

问题描述&#xff1a; D:\idea\xudongbase\src\test\java\com\xudongbase\doc\jotenberg\JotenbergTest.java:5:17 java: 无法访问dev.inaka.Jotenberg 错误的类文件: /C:/Users/xudongmaster/.m2/repository/dev/inaka/jotenberg/1.1.0/jotenberg-1.1.0.jar!/dev/inaka/Jot…