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

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

界面如下:

2f7aa82bd2fbc66ac9ee81905992479d.png

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

6b37f60f3db616afdfc2f696ec6a5bd4.png

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

2eb65f0a68f4b0376915635cbb7e56ac.png

代码和布局文件如下:

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

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/edittext"

android:layout_marginTop="10dp"/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/button"

android:text="添加表情"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textview1"

android:text="使用android:digits属性(输入数字)"/>

android:layout_width="200dp"

android:layout_height="wrap_content"

android:id="@+id/edittext1"

android:layout_margin="10dp"

android:digits="0123456789"

android:layout_marginTop="10dp"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textview2"

android:text="使用android:digits属性(输入26个小写字母)"/>

android:layout_width="200dp"

android:layout_height="wrap_content"

android:id="@+id/edittext2"

android:layout_margin="10dp"

android:digits="abcdefghijklmnopqrstuvwxyz"

android:layout_marginTop="10dp"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textview3"

android:text="使用android:inputType属性(输入数字)"/>

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"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textview4"

android:text="使用android:inputType属性(输入Email)"/>

android:layout_width="200dp"

android:layout_height="wrap_content"

android:id="@+id/edittext4"

android:layout_margin="10dp"

android:inputType="textEmailAddress"

android:layout_marginTop="10dp"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textview5"

android:text="使用android:inputType属性(输入有符号的浮点数)"/>

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"/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="校验输入框"/>

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐