EditText实现输入时自动追加单位,输入证件号部分变星号也可参考
来源:互联网 发布:中国矿工软件 编辑:程序博客网 时间:2024/06/05 18:15
这是本人第一篇技术博客,当然要原创啦。作为第一篇,说点基础又实用的,EditText,大家都用过,最基本的控件了。在开发过程中,有时为了用户体验,会在EditText输入过程中,追加单位,或者输入证件号时部分变星号这类需求。本文就对此进行讨论。如有更好思路,欢迎指教。
实现思路是双层布局,上面透明输入内容,下面TextView显示内容,需要对EditText的输入进行监听。效果图就不展示了,很简单的输入框,当输入文本时,自动会追加单位。
首先上布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="20dp" tools:context="com.cysion.textwatcherdemo.MainActivity"> <FrameLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginBottom="20dp" android:background="#330000ff"> <TextView android:id="@+id/tv_unit" style="@style/text_style" /> <EditText android:id="@+id/et_unit" style="@style/text_style" android:hint="请输入您的身高: cm" android:inputType="number" android:background="#0000" android:textColor="#0000" /> </FrameLayout></LinearLayout>
style文件,as可提取生成:
<style name="text_style"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">50dp</item> <item name="android:gravity">center_vertical</item> <item name="android:paddingLeft">10dp</item> <item name="android:singleLine">true</item> <item name="android:textSize">16sp</item> </style>------------------------------------------------------------
主要代码:
package com.cysion.textwatcherdemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.Editable;import android.text.TextWatcher;import android.widget.EditText;import android.widget.TextView;/** * Created by Cysion */public class MainActivity extends AppCompatActivity { private String unit = "cm"; private TextView tvUnit; private EditText etUnit; private String temp = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); setListener(); } private void initView() { tvUnit = (TextView) findViewById(R.id.tv_unit); etUnit = (EditText) findViewById(R.id.et_unit); } private void setListener() { //追加单位的监听 etUnit.addTextChangedListener(new DiyTextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { temp = etUnit.getText().toString().trim(); tvUnit.setText(temp+" "+unit); if (temp.length()==0){ tvUnit.setText(""); } } }); }}
//此处原想多写几种情况复用 abstract class DiyTextWatcher implements TextWatcher { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { } }思路简单,实现也不复杂,算是个开发tips吧。自定义view当然可行,但有时本文思路更简单。
0 0
- EditText实现输入时自动追加单位,输入证件号部分变星号也可参考
- 安卓EditText输入时自动填充
- 安卓EditText输入时自动编号
- 可选择也可自定义的输入框实现(原创)
- Android EditText中输入值以星号*显示 (密码的实现)
- EditText自动弹出输入框
- 每行前的星号,如何自动输入?
- 实现DropDownList可输入
- 限制EDITTEXT可输入的字符个数
- EditText 限制可输入的字符
- 可输入表情EditText工具类
- C语言实现 输入密码显示星号******
- Python实现星号遮掩的密码输入
- 控制台下星号密码输入的实现
- shell实现输入密码显示星号
- shell实现输入密码显示星号
- OutputDebugString实现变参输入
- Android实现EditText输入金额
- Python爬虫_获取贴吧内容
- 有感mysql中存放图片的方法以及mysql的相关操作
- 20160220.CCPP体系详解(0030天)
- 20160221.CCPP体系详解(0031天)
- hihoCoder 1272 买零食
- EditText实现输入时自动追加单位,输入证件号部分变星号也可参考
- solution Of Pat 1109. Group Photo (25)
- 【你不知道的JavaScript(上)读书笔记】第2章:词法作用域
- 阿里云 Ubuntu安装vncserver实现图形化访问
- 【你不知道的JavaScript(上)读书笔记】第1章:作用域
- UITextField的键盘(格式化设置)
- android基础回顾(三)基础UI组件
- Android Fragment完全解析
- cf#345-D - Image Preview-二分