Android开发第六讲EditText 编辑框


目录
  • Android开发第六讲EditText 编辑框
    • 一丶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"?>


    

    


    
    

    

    

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

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

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

状态选择器 布局如下

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


    

        

            
            
        
    


    
        
        
            
            
            
        
    

最后实现按钮点击事件

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属性就到这