Android之UI学习篇四:EditText输入表情和特殊字符
16lz
2021-01-23
大家都知道EditText可以输入数据,如何在EditText中来插入表情,以及实现只能输入规定格式的信息呢?
首先给大家看一下实现的效果:
界面如下:
当点击"添加表情"后,会随机的选取一张表情填入到EditText中,截图如下:
下面的输入规定类型的数据,截图如下:
代码和布局文件如下:
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>
更多相关文章
- ReactNative Android 实现加载本地图片
- Tablayout属性以及设置行间距和列间距
- 相对布局的layout_alignLeft属性
- Android Tween动画之RotateAnimation实现图片不停旋转
- Android 基础:常用布局 介绍 & 使用(附 属性查询)
- android:scaleType="matrix"布局文件加载图片时候的显示方式