shijchuli

这篇教程详细介绍了如何在Android环境中实现登录功能,包括界面布局、事件监听及响应。用户输入账号和密码后,根据正确性决定显示登录成功或失败的提示,并通过Intent在LoginActivity与MainActivity间传递数据,展示了基础的Android应用交互流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

16/100
lizong190060
new

**

一、今天我们要学习的是事件处理(登录以登录事件文例),主要是对登录的界面进行布局,在Java文件中写出登录时该实现的功能!

1.这是要实现的效果图
输入密码和账号后点击登录,如果正确的,那就弹出登录成功,如果错,就弹出,密码或 账号错误在这里插入图片描述
输入密码和账号后点击登录,如果正确的,那就弹出登录成功,如果错,就弹出,密码或 账号错误

二、

**1、**创建项目
在这里插入图片描述

在这里插入图片描述
到这里,给项目命名,包命名,之后点击Finish,我们的项目就创建好了

三、设计界面

**1、**准备要会用到的字符文件,当然这也可以后面再来,主要看自己
在这里插入图片描述
2、准备图片,用作背景
在这里插入图片描述
3、对登录界面进行设计
在这里插入图片描述
附上代码:

<?xml version="1.0" encoding="utf-8"?>

<TextView
    android:id="@+id/tvUserLogin"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="30dp"
    android:text="@string/user_login"
    android:textColor="#000000"
    android:textSize="60sp" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tvUsername"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/username"
        android:textColor="#000000"
        android:textSize="30sp" />

    <EditText
        android:id="@+id/edtUsername"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/name"
        android:textSize="30sp"
        android:singleLine="true" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tvPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/userpassword"
        android:textColor="#000000"
        android:textSize="30sp" />

    <EditText
        android:id="@+id/edtPassword"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:textSize="30sp"
        android:hint="@string/password"
        android:inputType="textPassword"
        android:singleLine="true" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"
    android:gravity="center_horizontal"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/btnLogin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:background="#07bcfc"
        android:text="@string/login"
        android:layout_marginLeft="30dp"
        android:textSize="40sp" />

    <Button
        android:id="@+id/btnCancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#07bcfc"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/destroy"
        android:layout_marginLeft="30dp"
        android:textSize="40sp" />
</LinearLayout>

Ac
4、同样对Activity_main.xml进行设计操作
在这里插入图片描述
附上代码,提供参考

<?xml version="1.0" encoding="utf-8"?>

<TextView
    android:id="@+id/tvMessage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="25dp"
    android:textColor="#0000ff"/>

四、实现功能,完成代码

**1、**新建登录.Java文件,如下图所示
在这里插入图片描述

**2、**在登录文件MainActivity中完成如下代码:

package net.lbd.shijianchuli;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
private TextView tvMessage;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //通过资源布局文件设置用户界面
    setContentView(R.layout.activity_main);
    //通过资源标识控符获得控件实列
    tvMessage=findViewById(R.id.tvMessage);
    //获取意图
    Intent intent=getIntent();
    //判断意图是否为空
    if(intent!=null){
        //获取意图携带的数据包
        Bundle data=intent.getExtras();
        //从数据包按键取出各项数据包
        String username=data.getString("username");
        String userpassword=data.getString("password");
        //拼接用户信息
        String message="登录成功!\n用户:"+username+"\n密码:"+userpassword;
        //设置标签属性,显示用户信息
        tvMessage.setText(message);
    }

}

}

**3、**在LoginActivity.java文件中完成如下代码
package net.lbd.shijianchuli;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends AppCompatActivity {
private EditText edtUsername;
private EditText edtPassword;
private Button btnLogin;
private Button btnCancel;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //利用资源布局文件设置用户界面
    setContentView(R.layout.activity_login);
    //通过资源标识获得控制实列

    edtUsername = findViewById(R.id.edtUsername);
    edtPassword = findViewById(R.id.edtPassword);
    btnLogin = findViewById(R.id.btnLogin);
    btnCancel = findViewById(R.id.btnCancel);

    //给登录按钮注册事件监听器,实现监听接口,编写事件处理方法
    btnLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //保存用户输入的数据:用户名和密码
            String strusername=edtUsername.getText().toString().trim();
            String strpassword=edtPassword.getText().toString().trim();
            //判断用户名和密码是否正确,假设这里都是“123456”
            if(strusername.equals("123456")&&strpassword.equals("123456")){
                Toast.makeText(LoginActivity.this,"恭喜! 密码或账户正确",Toast.LENGTH_SHORT).show();
                //创建显示意图(参数!:包上下文,参数二:目标组件)
                Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                startActivity(intent);

                // 创建数据包,封装数据
                Bundle data= new Bundle();
                data.putString("username",strusername);
                data.putString("password",strpassword);
                //通过意图携带数据包
                intent.putExtras(data);
                //按照意图启动目标组件
                startActivity(intent);



            }else{
                Toast.makeText(LoginActivity.this,"遗憾!密码或账户错误",Toast.LENGTH_SHORT).show();

            }
        }
    });
    //给取消按钮注册监听器,实现接口,编写事件处理
    btnCancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //关闭登录窗口
            finish();
        }
    });
}

}
运行常看效果,输入我们之前设置好的 密码和账号,点击登录,如果能成功的跳转到主页面,就成功了,跳转成功后你应该看到的如下图所示
在这里插入图片描述

**

四、总结

到这里我们的今天的内容就结束了,其实今天我们学的最主要也是最难的内容就是完成功能代码这部分,界面设计是最基础的东西,到后面我们对于界面设计这部分回适当的减少内容,设置时直接省略,今天我们要掌握的东西就是事件处理,通俗的说就是,但我输入密码和账号后,点击登录后,跳转到其他界面,这就是事件处理。当中点击这个动作时一个触发点,触发以后我们会有什么动作,这就是我理解的事件处理。

**
一、今天我们要学习的是事件处理(登录以登录事件文例),主要是对登录的界面进行布局,在Java文件中写出登录时该实现的功能!

1.这是要实现的效果图
输入密码和账号后点击登录,如果正确的,那就弹出登录成功,如果错,就弹出,密码或 账号错误在这里插入图片描述
输入密码和账号后点击登录,如果正确的,那就弹出登录成功,如果错,就弹出,密码或 账号错误
二、

**1、**创建项目
在这里插入图片描述

在这里插入图片描述
到这里,给项目命名,包命名,之后点击Finish,我们的项目就创建好了
三、设计界面

**1、**准备要会用到的字符文件,当然这也可以后面再来,主要看自己
在这里插入图片描述
2、准备图片,用作背景
在这里插入图片描述
3、对登录界面进行设计
在这里插入图片描述
附上代码:

<?xml version="1.0" encoding="utf-8"?>

<TextView
    android:id="@+id/tvUsername"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/username"
    android:textColor="#000000"
    android:textSize="30sp" />

<EditText
    android:id="@+id/edtUsername"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:ems="10"
    android:hint="@string/name"
    android:textSize="30sp"
    android:singleLine="true" />

<TextView
    android:id="@+id/tvPassword"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/userpassword"
    android:textColor="#000000"
    android:textSize="30sp" />

<EditText
    android:id="@+id/edtPassword"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:ems="10"
    android:textSize="30sp"
    android:hint="@string/password"
    android:inputType="textPassword"
    android:singleLine="true" />

<Button
    android:id="@+id/btnLogin"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:background="#07bcfc"
    android:text="@string/login"
    android:layout_marginLeft="30dp"
    android:textSize="40sp" />

<Button
    android:id="@+id/btnCancel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#07bcfc"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:text="@string/destroy"
    android:layout_marginLeft="30dp"
    android:textSize="40sp" />

Ac
4、同样对Activity_main.xml进行设计操作
在这里插入图片描述
附上代码,提供参考

<?xml version="1.0" encoding="utf-8"?>

四、实现功能,完成代码

**1、**新建登录.Java文件,如下图所示
在这里插入图片描述

**2、**在登录文件MainActivity中完成如下代码:

package net.lbd.shijianchuli;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
private TextView tvMessage;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//通过资源布局文件设置用户界面
setContentView(R.layout.activity_main);
//通过资源标识控符获得控件实列
tvMessage=findViewById(R.id.tvMessage);
//获取意图
Intent intent=getIntent();
//判断意图是否为空
if(intent!=null){
//获取意图携带的数据包
Bundle data=intent.getExtras();
//从数据包按键取出各项数据包
String username=data.getString(“username”);
String userpassword=data.getString(“password”);
//拼接用户信息
String message=“登录成功!\n用户:”+username+"\n密码:"+userpassword;
//设置标签属性,显示用户信息
tvMessage.setText(message);
}

}

}

**3、**在LoginActivity.java文件中完成如下代码
package net.lbd.shijianchuli;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends AppCompatActivity {
private EditText edtUsername;
private EditText edtPassword;
private Button btnLogin;
private Button btnCancel;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//利用资源布局文件设置用户界面
setContentView(R.layout.activity_login);
//通过资源标识获得控制实列

edtUsername = findViewById(R.id.edtUsername);
edtPassword = findViewById(R.id.edtPassword);
btnLogin = findViewById(R.id.btnLogin);
btnCancel = findViewById(R.id.btnCancel);

//给登录按钮注册事件监听器,实现监听接口,编写事件处理方法
btnLogin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //保存用户输入的数据:用户名和密码
        String strusername=edtUsername.getText().toString().trim();
        String strpassword=edtPassword.getText().toString().trim();
        //判断用户名和密码是否正确,假设这里都是“123456”
        if(strusername.equals("123456")&&strpassword.equals("123456")){
            Toast.makeText(LoginActivity.this,"恭喜! 密码或账户正确",Toast.LENGTH_SHORT).show();
            //创建显示意图(参数!:包上下文,参数二:目标组件)
            Intent intent = new Intent(LoginActivity.this, MainActivity.class);
            startActivity(intent);

            // 创建数据包,封装数据
            Bundle data= new Bundle();
            data.putString("username",strusername);
            data.putString("password",strpassword);
            //通过意图携带数据包
            intent.putExtras(data);
            //按照意图启动目标组件
            startActivity(intent);



        }else{
            Toast.makeText(LoginActivity.this,"遗憾!密码或账户错误",Toast.LENGTH_SHORT).show();

        }
    }
});
//给取消按钮注册监听器,实现接口,编写事件处理
btnCancel.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //关闭登录窗口
        finish();
    }
});

}

}
运行常看效果,输入我们之前设置好的 密码和账号,点击登录,如果能成功的跳转到主页面,就成功了,跳转成功后你应该看到的如下图所示
在这里插入图片描述

**
四、总结

到这里我们的今天的内容就结束了,其实今天我们学的最主要也是最难的内容就是完成功能代码这部分,界面设计是最基础的东西,到后面我们对于界面设计这部分回适当的减少内容,设置时直接省略,今天我们要掌握的东西就是事件处理,通俗的说就是,但我输入密码和账号后,点击登录后,跳转到其他界面,这就是事件处理。当中点击这个动作时一个触发点,触发以后我们会有什么动作,这就是我理解的事件处理。
帮助文档
快捷键
目录
标题
文本样式
列表
链接
代码片
表格
注脚
注释
自定义列表
LaTeX 数学公式
插入甘特图
插入UML图
插入Mermaid流程图
插入Flowchart流程图
插入类图

快捷键
Markdown 图标 快捷键
撤销
Ctrl /⌘+Z
重做
Ctrl /⌘+Y
加粗
Ctrl /⌘+B
斜体
Ctrl /⌘+I
标题
Ctrl /⌘+Shift +H
有序列表
Ctrl /⌘+Shift +O
无序列表
Ctrl /⌘+Shift +U
待办列表
Ctrl /⌘+Shift +C
插入代码
Ctrl /⌘+Shift +K
插入链接
Ctrl /⌘+Shift +L
插入图片
Ctrl /⌘+Shift +G
查找 Ctrl /⌘+F
替换 Ctrl /⌘+G
Markdown 7883 字数 275 行数 当前行 1, 当前列 0
HTML 5355 字数 198 段落

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值