Android学习笔记(一)

Android学习笔记(一)

简单的登录界面制作及简单的点击事件

1.添加控件

新建一个项目,打开后我们选择app.res.layout.activity_main.xml进行界面编辑,在其中加入三个控件,其中两个是EditText(用于用户输入数据进行登录),一个为Button(用于点击确认登陆),添加完成后为他们设置id便于后续操作

id命名规范:模块名_控件_界面位置_作用

(模块名是啥?作为初学者我并不知道。。。所以下面的代码中,我会直接省去模块名)

简单写一下我的烂代码:

 
<?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">
 ​
     <EditText
         android:id="@+id/et_main_username"
         android:layout_width="300dp"
         android:layout_height="wrap_content"
         android:autofillHints="AUTOFILL_HINT_USERNAME"
         android:hint="@string/input_username"
         android:inputType="text"
         android:lines="1"
         android:minHeight="48dp"
         app:layout_constraintBottom_toTopOf="@+id/et_main_password"
         app:layout_constraintEnd_toEndOf="@+id/et_main_password"
         tools:ignore="TextContrastCheck" />
 ​
     <EditText
         android:id="@+id/et_main_password"
         android:layout_width="300dp"
         android:layout_height="wrap_content"
         android:layout_marginBottom="104dp"
         android:autofillHints="AUTOFILL_HINT_PASSWORD"
         android:hint="@string/input_password"
         android:inputType="textPassword"
         android:lines="1"
         android:minHeight="48dp"
         app:layout_constraintBottom_toTopOf="@+id/btn_main_login"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.505"
         app:layout_constraintStart_toStartOf="parent"
         tools:ignore="TextContrastCheck" />
 ​
     <Button
         android:id="@+id/btn_main_login"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginBottom="248dp"
         android:text="@string/login"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.498"
         app:layout_constraintStart_toStartOf="parent" />
 </androidx.constraintlayout.widget.ConstraintLayout>

部分代码介绍:

android:id设置控件id。 android:layout_widthandroid:layout_height设置控件宽度和高度,单位建议为dp,原因可以自行查一下,其中wrap_content为设置控件高(宽度)为依据内容而定,match_parent为全屏。 android:hint为设置控件内文字,一般会将这些文字保存在res.values.strings.xml中,通过@string/name来进行调用(没有储存的文字会爆黄,鼠标移上去会提醒添加到上述文件中,alt+shift+enter快捷添加)。 android:inputType为输入数字类型设置,不同的类型在实际输入中也会有所不同。 android:lines输入最大行数限制。 android:text设置空间上展示文字。

效果图:

image-20211219223023838

2.从用户手机上获得输入信息

这里的操作将在java.com.example.demo.MainActivity中进行。

绑定控件

通过初始化相应控件对象绑定控件。

首先,MainActivity中本来是这个样子的:

image-20211219223438403

我们在onCreate方法前面先写好控件对象:

private EditText mEtUsername;
 private EditText mEtPassword;

然后在创建initView方法进行绑定: 

public void initView(){
         mEtUsername = findViewById(R.id.et_main_username);
         mEtPassword = findViewById(R.id.et_main_password);
}

onCreate内调用方法:

@Override
 protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         initView();
}

这样,我们的EditText控件就绑定成功了!

为Button设置监听以判断登录是否成功

这一步很简单。

首先,我们要绑定这个Button控件(方法同上)。

然后,让MainActivity实现View.OnClickListener接口,新建一个setView()Button设置监听:

@Override
 protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         initView();
}

在下面添加onClick(View v)方法来设置点击事件(暂时设置为点击后屏幕弹出一个Toast显示“你点击了登录按钮”)。

onClick代码如下:

 @Override
 public void onClick(View v) {
     if (v.getId() == R.id.btn_main_login) {
         Toast.makeText(this, "你点击了登录按钮", Toast.LENGTH_SHORT).show();
     }
 }

这是,让我们在手机上试着运行一下。

效果图

img

3.写出方法来判断用户用户名和密码是否正确

获取数据并判断

我们创建一个login()方法来判断输入信息:

通过.getText().toString()来获取数据并转化为字符串。

 
public void login(){
     String username = mEtUsername.getText().toString();
     String password = mEtPassword.getText().toString();
     if(!username.equals("一木折曦")){
         Toast.makeText(this,"用户名错误",Toast.LENGTH_SHORT).show();
     }else if(!password.equals("123456")){
            Toast.makeText(this,"您的密码错误",Toast.LENGTH_SHORT).show();
     }else{
         Toast.makeText(this,"登陆成功",Toast.LENGTH_SHORT).show();
     }
}

这里的一木折曦123456是我随便写的一个用户名和密码。

4.真机测试

QQ视频20211219231800 00_00_00-00_00_30

5.完整代码

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:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context=".MainActivity">
 ​
     <EditText
         android:id="@+id/et_main_username"
         android:layout_width="300dp"
         android:layout_height="wrap_content"
         android:autofillHints="AUTOFILL_HINT_USERNAME"
         android:hint="@string/input_username"
         android:inputType="text"
         android:lines="1"
         android:minHeight="48dp"
         app:layout_constraintBottom_toTopOf="@+id/et_main_password"
         app:layout_constraintEnd_toEndOf="@+id/et_main_password"
         tools:ignore="TextContrastCheck" />
 ​
     <EditText
         android:id="@+id/et_main_password"
         android:layout_width="300dp"
         android:layout_height="wrap_content"
         android:layout_marginBottom="104dp"
         android:autofillHints="AUTOFILL_HINT_PASSWORD"
         android:hint="@string/input_password"
         android:inputType="textPassword"
         android:lines="1"
         android:minHeight="48dp"
         app:layout_constraintBottom_toTopOf="@+id/btn_main_login"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.505"
         app:layout_constraintStart_toStartOf="parent"
         tools:ignore="TextContrastCheck" />
 ​
     <Button
         android:id="@+id/btn_main_login"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginBottom="248dp"
         android:text="@string/login"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.498"
         app:layout_constraintStart_toStartOf="parent" />
 </androidx.constraintlayout.widget.ConstraintLayout>

MainActivity

 
package com.example.demo;
 ​
 import androidx.appcompat.app.AppCompatActivity;
 ​
 import android.os.Bundle;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.Toast;
 ​
 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
 ​
     private EditText mEtUsername;
     private EditText mEtPassword;
     private Button mBtnLogin;
 ​
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         initView();
         setView();
     }
 ​
     public void initView() {
         mEtUsername = findViewById(R.id.et_main_username);
         mEtPassword = findViewById(R.id.et_main_password);
         mBtnLogin = findViewById(R.id.btn_main_login);
     }
 ​
     public void setView(){
         mBtnLogin.setOnClickListener(this);
     }
 ​
     @Override
     public void onClick(View v) {
         if (v.getId() == R.id.btn_main_login) {
             login();
         }
     }
 ​
     public void login(){
         String username = mEtUsername.getText().toString();
         String password = mEtPassword.getText().toString();
         if(!username.equals("一木折曦")){
             Toast.makeText(this,"用户名错误",Toast.LENGTH_SHORT).show();
         }else if(!password.equals("123456")){
             Toast.makeText(this,"您的密码错误",Toast.LENGTH_SHORT).show();
         }else{
             Toast.makeText(this,"登陆成功",Toast.LENGTH_SHORT).show();
         }
     }
 }

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>