文档章节

Android之UI学习篇四:EditText输入表情和特殊字符

yolinfeng
 yolinfeng
发布于 2015/02/16 00:10
字数 590
阅读 71
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

大家都知道EditText可以输入数据,如何在EditText中来插入表情,以及实现只能输入规定格式的信息呢?

首先给大家看一下实现的效果:

界面如下:



当点击"添加表情"后,会随机的选取一张表情填入到EditText中,截图如下:



下面的输入规定类型的数据,截图如下:



代码和布局文件如下:

MainActivity.java

package com.editText;

import java.lang.reflect.Field;
import java.util.Random;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ImageSpan;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

import com.editview.R;

public class MainActivity extends Activity {
    private EditText editText;
    private Button button;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        editText=(EditText)findViewById(R.id.edittext);
        button=(Button)findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				int randomId=1+new Random().nextInt(5);//nextInt(9)的范围是0-8
				try {
					Field field=R.drawable.class.getDeclaredField("image"+randomId);
					int resourceId=Integer.parseInt(field.get(null).toString());
					//在Android中要显示图片信息,必须使用BitMap的对象来加载
					Bitmap bitmap=BitmapFactory.decodeResource(getResources(), resourceId);
					ImageSpan imageSpan=new ImageSpan(MainActivity.this, bitmap);
					SpannableString spannableString=new SpannableString("image");	//“image”是图片名称的前缀
					spannableString.setSpan(imageSpan, 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
					editText.append(spannableString);
				} catch (SecurityException e) {
					e.printStackTrace();
				} catch (NoSuchFieldException e) {
					e.printStackTrace();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
    }
}


main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/edittext"
        android:layout_marginTop="10dp"/>
	<Button 
	    android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:text="添加表情"/>
	
	<TextView 
	    android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textview1"
        android:text="使用android:digits属性(输入数字)"/>
	<EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/edittext1"
        android:layout_margin="10dp"
        android:digits="0123456789"
        android:layout_marginTop="10dp"/>
	
	<TextView 
	    android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textview2"
        android:text="使用android:digits属性(输入26个小写字母)"/>
	<EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/edittext2"
        android:layout_margin="10dp"
        android:digits="abcdefghijklmnopqrstuvwxyz"
        android:layout_marginTop="10dp"/>
	
	<TextView 
	    android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textview3"
        android:text="使用android:inputType属性(输入数字)"/>
	<EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/edittext3"
        android:layout_margin="10dp"
        android:inputType="number|textCapCharacters"
        android:layout_marginTop="10dp"/>
	
	<TextView 
	    android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textview4"
        android:text="使用android:inputType属性(输入Email)"/>
	<EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/edittext4"
        android:layout_margin="10dp"
        android:inputType="textEmailAddress"
        android:layout_marginTop="10dp"/>
	
	<TextView 
	    android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textview5"
        android:text="使用android:inputType属性(输入有符号的浮点数)"/>
	<EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/edittext5"
        android:layout_margin="10dp"
        android:numeric="decimal|signed"
        android:layout_marginTop="10dp"/>
	<Button 
	    android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="校验输入框"/>
	
</LinearLayout>



本文转载自:http://blog.csdn.net/wulianghuan/article/details/8583921

yolinfeng
粉丝 12
博文 196
码字总数 11946
作品 0
珠海
架构师
私信 提问
Android的TextView使用Html来处理图片显示、字体样式、超链接等

一、[Android实例]实现TextView里的文字有不同颜色 转eoe:http://www.eoeandroid.com/thread-4496-1-1.html 二、TextView显示html文件中的图片 转javaeye:http://da-en.javaeye.com/blog/7......

鉴客
2011/10/28
15.4K
3
EditText 集锦 - 开发中常用的用法及遇到的各种坑

前言 EditText ,文本输入框,一个再熟悉不过的的控件,在开发当中,我们需要经常用到。这边文章,主要是记录 EditText 的常用用法,需要的时候可以直接复制张贴,提高效率。同时,本文章会持...

xujun9411
02/21
0
0
EditText超出字数限制,给用户提示

当我们在Editext输入内容的时候,检测如果超过限制的长度无法输入内容,并且给用户提示。 首先我想到了下面的方法: editText.addTextChangedListener(new TextWatcher() { 未经测试,个人觉...

妖久
2018/09/13
0
0
android的TextView使用Html(图片显示)格式。。。。。。

一、[Android实例]实现TextView里的文字有不同颜色 转eoe:http://www.eoeandroid.com/thread-4496-1-1.html import android.text.Html; TextView t3 = (TextView) findViewById(R.id.text3......

caikezhan
2012/03/28
3.1K
0
EditText的一些常用功能的介绍

一:新建HelloEditText工程 新建一个Hello world详细步骤可以参见 Android教程之三:第一个Android应用,HelloWorld 创建设置如下: Project name: HelloEditText Build Target :android 2....

yuwentao
2012/04/19
780
0

没有更多内容

加载失败,请刷新页面

加载更多

hbase错误记录

说什么服务没启动 但是 $ jps 查看又是正常的 然后想到去看日志 $ vim logs/hbase-root-regionserver-hadoop101.log INFO信息停留在:client.ZooKeeperRegistry: ClusterId read in ZooKeep...

天空飘来五个字儿
27分钟前
5
0
类的第一个元素的CSS选择器

我有一堆元素的类名是red ,但是我似乎无法使用以下CSS规则选择class="red"的第一个元素: .red:first-child { border: 5px solid red; } <p class="red"></p> <div class="red"></div> 该选......

技术盛宴
34分钟前
4
0
如何将重复数据突出显示?

将表格中一列数据中重复的,使用特殊颜色突出显示或者使用一些符号标记出来。 例如: 一个供应商,可以邀请别的供应商加入成为联合体,报表要显示所有供应商,然后供应商最后一列显示所有联合...

泡泡糖儿
36分钟前
4
0
python将html的百分号转为对应的编码

import redef trans(x): # print(x.group()) return bytes.fromhex(x.group()[2:].decode("utf-8"))data = str("你好".encode("utf-8"))print(data)data = re.subn(b"\\\\x[0-9......

鬼上身跳不过门槛
46分钟前
4
0
如何在nohup下放置已经运行的进程?

我有一个已经运行了很长时间并且不想结束它的进程。 我怎么把它放在nohup下(也就是说,即使关闭终端,如何让它继续运行?) #1楼 假设由于某种原因, Ctrl + Z也无法正常工作,转到另一个终...

javail
50分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部