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

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

界面如下:

Android之UI学习篇四:EditText输入表情和特殊字符_第1张图片


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

Android之UI学习篇四:EditText输入表情和特殊字符_第2张图片


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

Android之UI学习篇四:EditText输入表情和特殊字符_第3张图片


代码和布局文件如下:

MainActivity.java

packagecom.editText;importjava.lang.reflect.Field;importjava.util.Random;importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Bundle;importandroid.text.Spannable;importandroid.text.SpannableString;importandroid.text.style.ImageSpan;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importcom.editview.R;publicclassMainActivityextendsActivity{privateEditTexteditText;privateButtonbutton;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);editText=(EditText)findViewById(R.id.edittext);button=(Button)findViewById(R.id.button);button.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){intrandomId=1+newRandom().nextInt(5);//nextInt(9)的范围是0-8try{Fieldfield=R.drawable.class.getDeclaredField("image"+randomId);intresourceId=Integer.parseInt(field.get(null).toString());//在Android中要显示图片信息,必须使用BitMap的对象来加载Bitmapbitmap=BitmapFactory.decodeResource(getResources(),resourceId);ImageSpanimageSpan=newImageSpan(MainActivity.this,bitmap);SpannableStringspannableString=newSpannableString("image");//“image”是图片名称的前缀spannableString.setSpan(imageSpan,0,5,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);editText.append(spannableString);}catch(SecurityExceptione){e.printStackTrace();}catch(NoSuchFieldExceptione){e.printStackTrace();}catch(Exceptione){e.printStackTrace();}}});}}


main.xml

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><EditTextandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/edittext"android:layout_marginTop="10dp"/><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/button"android:text="添加表情"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/textview1"android:text="使用android:digits属性(输入数字)"/><EditTextandroid:layout_width="200dp"android:layout_height="wrap_content"android:id="@+id/edittext1"android:layout_margin="10dp"android:digits="0123456789"android:layout_marginTop="10dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/textview2"android:text="使用android:digits属性(输入26个小写字母)"/><EditTextandroid:layout_width="200dp"android:layout_height="wrap_content"android:id="@+id/edittext2"android:layout_margin="10dp"android:digits="abcdefghijklmnopqrstuvwxyz"android:layout_marginTop="10dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/textview3"android:text="使用android:inputType属性(输入数字)"/><EditTextandroid:layout_width="200dp"android:layout_height="wrap_content"android:id="@+id/edittext3"android:layout_margin="10dp"android:inputType="number|textCapCharacters"android:layout_marginTop="10dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/textview4"android:text="使用android:inputType属性(输入Email)"/><EditTextandroid:layout_width="200dp"android:layout_height="wrap_content"android:id="@+id/edittext4"android:layout_margin="10dp"android:inputType="textEmailAddress"android:layout_marginTop="10dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/textview5"android:text="使用android:inputType属性(输入有符号的浮点数)"/><EditTextandroid:layout_width="200dp"android:layout_height="wrap_content"android:id="@+id/edittext5"android:layout_margin="10dp"android:numeric="decimal|signed"android:layout_marginTop="10dp"/><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="校验输入框"/></LinearLayout>



更多相关文章

  1. ReactNative Android 实现加载本地图片
  2. Tablayout属性以及设置行间距和列间距
  3. 相对布局的layout_alignLeft属性
  4. Android Tween动画之RotateAnimation实现图片不停旋转
  5. Android 基础:常用布局 介绍 & 使用(附 属性查询)
  6. android:scaleType="matrix"布局文件加载图片时候的显示方式

随机推荐

  1. 建造者模式和原型模式在开源代码中的应用
  2. 最想放弃的时候,离成功最近
  3. 见到了点曙光
  4. 代理模式在开源代码中的应用
  5. 学习笔记 — 重构
  6. Map集合、散列表、红黑树介绍
  7. 《深入理解Java虚拟机》读书笔记
  8. 适配器模式在开源代码中的应用
  9. 如何快速地看书?
  10. HashMap就是这么简单【源码剖析】