专栏首页逆向技术Android开发第六讲EditText 编辑框

Android开发第六讲EditText 编辑框

Android开发第六讲EditText 编辑框

一丶EditText编辑框属性

EditText 继承自 TextView 所以它的属性我们可以使用. TextView不支持文字的编辑.而EditText支持文字的编辑.

那么说一下常用的属性吧

android:hint = "提示文字"   加上这个编辑框会提示你要输入的文字
android:inputType="textPassworld" 加上这个,表示编辑框输入的时候文字是密文密码形式
android:inputType 可以规定编辑框输入的各种形式.比如密码形式 指定输入数字等.
android:drawableleft 可以给编辑框加图片.这样可以做一个很好的登录框

使用常用属性配合Button做一个登录框,并且给Button添加监听事件响应消息.

Xml如下

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".EdtActive">
<!--设置用户名提示框-->
    <EditText
        android:id="@+id/EdtView1"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="请输入用户名"
        android:maxLines="1"
        android:singleLine="true"
        android:paddingLeft="15dp"
        android:background="@drawable/btn_shape1"
        android:layout_marginTop="50dp"
        android:drawableLeft="@drawable/user"
        android:textSize="20sp">

    </EditText>


    <!--设置密码提示框-->
    <EditText
        android:id="@+id/EdtView2"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="请输入密码"
        android:paddingLeft="15dp"
        android:background="@drawable/btn_shape1"
        android:inputType="textPassword"
        android:layout_below="@id/EdtView1"
        android:layout_marginTop="10dp"
        android:drawableLeft="@drawable/lock"
        android:drawablePadding="10dp"
        android:textSize="20sp">

    </EditText>
<!--创建按钮-->
    <Button
        android:id="@+id/btn_login"
        android:layout_below="@id/EdtView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:textSize="30sp"
        android:text="登录"
        android:background="@drawable/btn_4"
        android:textColor="#ffff00">

    </Button>
</RelativeLayout>

其中我使用了user图片以及 lock图片.这个可以在网址上找到. 下载32*32资源即可.

https://www.flaticon.com/search?word=user

然后使用之前的 状态选择器布局.

状态选择器 布局如下

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--    状态选择器 android:state_pressed = true代表按压-->
    <item android:state_pressed="true">
<!--        如果是按压,那么我们使用shape画一个-->
        <shape>
<!--            设置实心颜色,并且设置圆角-->
            <solid android:color="#ff0000"></solid>
            <corners android:radius="10dp"></corners>
        </shape>
    </item>

<!--    否则设置为绿色-->
    <item android:state_pressed="false">
        <!--        如果是按压,那么我们使用shape画一个-->
        <shape>
            <!--            设置实心颜色,并且设置圆角-->
            <solid android:color="#0ca30c"></solid>
            <corners android:radius="10dp"></corners>
        </shape>
    </item>
</selector>

最后实现按钮点击事件

package com.ibinary.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class EdtActive extends AppCompatActivity {

//    响应按钮事件
    private Button m_Login;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edt_active);
        m_Login = (Button) findViewById(R.id.btn_login);
        m_Login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(EdtActive.this, "登录成功", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

你的Button是定义在EdtView中的.所以我们的代码要写在 EdtActive.java中

效果如下

按钮提示文字 分别是请输入用户名 以及请输入密码. 而且都加了图标.

登录按钮加了状态选择器

点击登录提示登录成功

二丶编辑框响应监听事件

响应监听事件就需要写代码了.

响应的是 编辑框的 addTextChangedListener

代码如下

package com.ibinary.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class EdtActive extends AppCompatActivity {

//    响应按钮事件
    private Button m_Login;
    private EditText m_EdtUser;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edt_active);
        m_Login = (Button) findViewById(R.id.btn_login);
        m_Login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(EdtActive.this, "登录成功", Toast.LENGTH_SHORT).show();
            }
        });

        m_EdtUser = (EditText)findViewById(R.id.EdtView1);
        m_EdtUser.addTextChangedListener(new TextWatcher() {
            //三个方法,分别是 在修改之前监听 在修改之中监听 以及在修改之后监听
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                //CharSequence 参数1是我们输入的字符.可以在调试输出窗口中数据
                Log.d("EditText = ", charSequence.toString());
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });
    }
}

在修改中输出消息.可以在Android Studio的日志窗口中看到

至此基本的ExitText属性就到这

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android EditText使用详解-包含很多教程上看不到的功能演示

    标题有点大,说是详解,其实就是对EditText的一些常用功能的介绍,包括密码框,电话框,空白提示文字等等的讲解,尽量的介绍详细一点,也就是所谓的详解了。。呵呵

    飞雪无情
  • Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    编辑框EditText算是Android的一个基础控件了,表面上看,EditText只负责接收用户手工输入的文本;可实际上,要...

    用户4464237
  • Android开发之漫漫长途 番外篇——自定义View的各种姿势1

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列。该系列引用了《Android开发艺术探索...

    LoveWFan
  • Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展

    最近有个需求:评论@人(没错,就是IM聊天或者微博APP里的@人功能),就像下图这样:

    JackJiang
  • Android编程实现的EditText弹出打开和关闭工具类

    本文实例讲述了Android编程实现的EditText弹出打开和关闭工具类。分享给大家供大家参考,具体如下:

    砸漏
  • Android RxJava 实战系列:联想搜索优化

    注:关于 Rxjava中的debuounce() 操作符的使用请看文章:Android RxJava:过滤操作符 全面讲解

    Carson.Ho
  • android之编辑框限定范围

    forrestlin
  • 《Android》Lesson24-综合项目实战

    用户1733354
  • EditText 使用详解

    本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

    233333
  • 【谷歌官方文档】1.1 建立第一个APP

    本小节介绍如何使用Android Studio或者是SDK Tools中的命令行来创建一个新的项目。

    吴延宝
  • 安卓入门-第三章-安卓常用控件的使用方式

     TextView可以说是Android中最简单的一个控件了,你在前面其实已经和它打过一些交道了。它主要用于在界面上显示一段文本信息,比如你在第1章看到的“He...

    Fisherman渔夫
  • Android编程实现在自定义对话框中获取EditText中数据的方法

    本文实例讲述了Android编程实现在自定义对话框中获取EditText中数据的方法。分享给大家供大家参考,具体如下:

    砸漏
  • Android开发之EditText框输入清理工具类示例

    本文实例讲述了Android开发之EditText框输入清理工具类。分享给大家供大家参考,具体如下:

    砸漏
  • Android编程之ListView和EditText发布帖子隐藏软键盘功能详解

    本文实例讲述了Android编程之ListView和EditText发布帖子隐藏软键盘功能。分享给大家供大家参考,具体如下:

    砸漏
  • Android RxJava 实战系列:联合判断

    Carson.Ho
  • Android开发 经验技巧汇总(基于Android Studio)(一)

    首先最简单的两个动画,写在了XML里面,当然也可以写到java中, 第一个in_animation.xml,第二个out_animation.xml, ...

    cutercorley
  • Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法示例【附源码下载】

    本文实例讲述了Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法。分享给大家供大家参考,具体如下:

    砸漏
  • Android开发笔记(一百三十八)文本输入布局TextInputLayout

    TextInputLayout是MaterialDesign库中对编辑框EditText进行增强的一个控件。众所周知,EditText未输入字符时,我们可以给...

    用户4464237
  • 使用文本框TextView/EditText的清单

    在实际的开发中TextView和EditText是非常基本的控件。这两个控件的使用也是十分简单。而TextView/EditText的功能其实也是非常强大,例如...

    阳仔

扫码关注云+社区

领取腾讯云代金券