prefácio
Escrevi este projeto há muito tempo e agora estou postando para sua referência. Pode haver alguns problemas fora do padrão, se houver algo errado, bem-vindo para criticar e corrigir. Primeiro, você precisa instalar e configurar o ambiente de desenvolvimento Java e escolher qualquer ferramenta de desenvolvimento Android para programação. Recomenda-se baixar e instalar o software Android Studio para desenvolvimento de programas. Antes de iniciar o desenvolvimento de programação Android, você precisa ter um certo entendimento e domínio dos fundamentos de Java.
1. Requisitos básicos
Implemente uma interface simples de login do usuário com as seguintes funções:
1. Por padrão, as informações do usuário não são armazenadas e as senhas são ocultadas por padrão.
2. Você pode lembrar a senha e exibir a senha marcando a caixa e clicar para fazer login para realizar o salto de página para a página principal.
3. Entre na interface principal através de "Login", saia do APP através de "Exit" e retorne à página de login através de "Return" na interface principal
4. A interface de login exibe o nome do usuário conectado e a hora de login do usuário atual
2. Análise do código-chave
1. Ao executar o redirecionamento de login, manifest.xml deve gravar o novo nome da atividade, caso contrário, o redirecionamento não pode ser realizado
<activity android:name=".WelcomeActivity"/>
2. Obtenha os parâmetros relevantes (nome de login e senha) para lembrar o usuário atual em SharedPreferences, defina o número da conta e a senha na caixa de edição de texto e marque Lembrar o nome de usuário e a senha atuais
//从SharedPreferences中获取是否记住密码的参数
final SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(this);
boolean isRemember = preference.getBoolean("remember_pwd", false);
//设置账号与密码到文本框,并勾选记住密码
if (isRemember) {
username.setText(preference.getString("name", ""));
password.setText(preference.getString("password", ""));
remember_pwd.setChecked(true);
}
3. Defina o nome de usuário e a verificação de senha; se a verificação for bem-sucedida e lembrar que a senha foi verificada, a senha e o nome de usuário serão salvos, se não forem marcados, os dados salvos serão apagados após o login bem-sucedido
String inputName = username.getText().toString();
String pwd = password.getText().toString();
//进行登录用户名和密码校验
if (inputName.equals("老王") && pwd.equals("123456789")) {
SharedPreferences.Editor editor = preference.edit();
if (remember_pwd.isChecked()) {//记住账号与密码
editor.putBoolean("remember_pwd", true);
editor.putString("name", inputName);
editor.putString("password", pwd);
} else {//清空数据
editor.clear();
}
editor.apply();
4. Vá para a interface principal WelcomeActivity.java
WelcomeActivity.actionStart(MainActivity.this, inputName, pwd);
5. Seja para exibir a senha, o padrão é não verificar a senha de exibição
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
//如果选中,显示密码
editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}
else {
//否则隐藏密码
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
}
6. Sair
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
7. Após o login bem-sucedido, o nome do usuário será exibido
//登录成功后,用户名显示
private void showWelcome() {
Bundle bundle = getIntent().getExtras();
String name = bundle.getString("username");
myWelcome.setText("\n" + name + " 您好!\n 欢迎光临");
}
8. Obtenha o horário de login atual
private void showTime() {
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date curDate = new Date(System.currentTimeMillis());
//获取当前时间
String str = formatter.format(curDate);
myTime.setText("您的登录时间为:"+str);
}
3. Exibição do código da página
activity_main.xml:
<?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/relativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/b03533fa828ba61e560f92ebd1da230f324e5901"
tools:context=".MainActivity">
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="75dp"
android:layout_marginEnd="32dp"
android:hint="请输入用户名"
app:layout_constraintBottom_toTopOf="@+id/editText2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
android:maxLines="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.972" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="75dp"
android:layout_marginEnd="32dp"
android:hint="请输入密码"
android:inputType="textPassword"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
android:maxLines="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.546" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:text="用户登录"
android:textSize="28sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/editText1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.89" />
<Button
android:id="@+id/button_login"
style="@style/AlertDialog.AppCompat.Light"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="32dp"
android:layout_marginRight="30dp"
android:backgroundTint="@android:color/holo_blue_dark"
android:text="登录"
app:layout_constraintEnd_toStartOf="@+id/button_quit"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
<Button
android:id="@+id/button_quit"
style="@style/AlertDialog.AppCompat.Light"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_gravity="center_horizontal"
android:layout_marginStart="30dp"
android:layout_marginTop="76dp"
android:layout_marginEnd="30dp"
android:text="退出"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="显示密码"
app:layout_constraintStart_toStartOf="@+id/button_login"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="记住密码"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.3"
app:layout_constraintStart_toStartOf="@+id/checkBox1"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="用户:"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/editText2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/editText1"
app:layout_constraintVertical_bias="0.37" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="密码:"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editText2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintVertical_bias="0.718" />
</androidx.constraintlayout.widget.ConstraintLayout>
bem-vindo.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="网上购书系统"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textSize="@dimen/abc_text_size_headline_material"
android:textStyle="bold"
android:textColor="@android:color/holo_blue_dark" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="\n您好!\n欢迎光临"
android:id="@+id/myLabelWelcome"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:textSize="@dimen/abc_text_size_large_material"
android:textColor="@android:color/holo_red_dark" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/androidwelcomer"
android:layout_below="@+id/myLabelWelcome"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:id="@+id/myLabelTime"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:textSize="@dimen/abc_text_size_medium_material" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="返 回"
android:id="@+id/myButtonBack"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:textSize="@dimen/abc_text_size_large_material"
android:onClick="onBackClick" />
</RelativeLayout>
5. Exibição de resultados
1. A interface de login do usuário é a seguinte:
2. Por padrão, as informações do usuário não são armazenadas e as senhas são ocultadas por padrão:
3. Você pode marcar a caixa para lembrar a senha, exibir a senha e perguntar se a senha da conta está correta ou incorreta:
4. Depois de clicar em Login, a página vai para a interface principal, e a interface principal exibe a hora de login atual e o usuário:
5. Demonstração abrangente do projeto
Download do código-fonte: Interface de login da prática de desenvolvimento do Android jump-Android Documentation Resources-CSDN Download