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();
         }
     }
 }

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
作为AI语言模型,我只能提供一些Android开发的基础知识和常用概念,希望对您有所帮助。 1. Android组成部分 Android操作系统由四个主要组成部分组成:应用程序、应用程序框架、系统运行库和硬件抽象层。 2. Activity Activity是Android应用程序中的一个组件,用于表示应用程序中的一个屏幕。Activity可以包含用户界面元素,如文本框、按钮和图像。 3. Intent Intent是Android应用程序中的一个基本组件,用于在不同的组件之间传递数据。Intent可以用于启动Activity、启动服务、发送广播等。 4. 布局 布局是Android应用程序中用于定义用户界面的XML文件。布局文件定义了应用程序中的视图层次结构,包括文本框、按钮、图像等。 5. AndroidManifest.xml AndroidManifest.xml是Android应用程序中的一个必需文件,用于描述应用程序的基本信息。该文件包含应用程序的包名、应用程序的入口Activity、应用程序需要的权限等信息。 6. 生命周期 Android应用程序中的每个组件都有自己的生命周期,包括创建、启动、暂停和销毁。了解组件的生命周期可以帮助开发者更好地管理应用程序的资源。 7. 线程 Android应用程序中的线程用于执行长时间运行的操作,如下载文件或执行计算。但是,在主线程中执行长时间运行的操作会导致应用程序变得缓慢或停止响应,因此必须使用异步线程。 8. Service Service是Android应用程序中的一种组件,用于在后台执行长时间运行的操作。与Activity不同,Service没有用户界面,可以在后台执行。 9. 广播 广播是Android应用程序中的一种机制,用于在不同组件之间传递消息。广播可以用于通知应用程序中的其他组件,例如当设备电池电量低时,应用程序可以发送广播通知其他组件。 10. 内存管理 内存管理是Android应用程序中的一个重要方面。Android应用程序必须管理内存以确保应用程序能够正常运行,并避免出现内存泄漏和内存溢出等问题。可以使用垃圾回收器、使用合适的数据结构、避免创建不必要的对象等方法来管理内存。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一木折曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值