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_width
、android:layout_height
设置控件宽度和高度,单位建议为dp
,原因可以自行查一下,其中wrap_content
为设置控件高(宽度)为依据内容而定,match_parent
为全屏。 android:hint
为设置控件内文字,一般会将这些文字保存在res.values.strings.xml
中,通过@string/name
来进行调用(没有储存的文字会爆黄,鼠标移上去会提醒添加到上述文件中,alt+shift+enter
快捷添加)。 android:inputType
为输入数字类型设置,不同的类型在实际输入中也会有所不同。 android:lines
输入最大行数限制。 android:text
设置空间上展示文字。
效果图:
2.从用户手机上获得输入信息
这里的操作将在java.com.example.demo.MainActivity
中进行。
绑定控件
通过初始化相应控件对象绑定控件。
首先,MainActivity
中本来是这个样子的:
我们在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();
}
}
这是,让我们在手机上试着运行一下。
效果图
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.真机测试
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();
}
}
}