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();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/386621.html
標籤:其他
