Android控件详解之EditText

我将Android控件的Textview的学习知识总结一下和大家共享

在Android新建的第一个工程中,文本框是非常 常用的控件EditText。

EditText控件的基本使用方法很简单,在布局文件中使用<EditText>第一既可以了,或者在java代码:EditText editText= (EditText)findViewById(R.id.editText1);

1、EditText属性的属性

EditText的和TextView基本大部分都是一样,它作为的TextView的子类,继承了Textview的属性。

android:hint

Text为空时显示的文字提示信息,

可通过textColorHint设置提示信息的

是Textview没有的。

2、EditText插入图片表情

在这里主要用到了SpannableString和Field.get方法,直接代码:

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<EditText android:id="@+id/edittext" android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:lines="3" android:gravity="left|top"/>

	<Button android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="随机插入表情"
		android:onClick="onClick_RandomFace" android:layout_marginTop="10dp" />

</LinearLayout>
java实现文件:

public class Main extends Activity
{
	private EditText edittext;
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		edittext = (EditText) findViewById(R.id.edittext);
	}
	public void onClick_RandomFace(View view)
	{
		int randomId = 1 + new Random().nextInt(9);
		try
		{
<span style="background-color: rgb(192, 192, 192);">			Field field = R.drawable.class.getDeclaredField("face" + randomId);

			int resourceId = Integer.parseInt(field.get(null).toString());
			Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
					resourceId);
			ImageSpan imageSpan = new ImageSpan(this, bitmap);
			SpannableString spannableString = new SpannableString("face");
			spannableString.setSpan(imageSpan, 0, 4,
					Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
			edittext.append(spannableString);</span>
		}
		catch (Exception e)
		{		
		}
	}
}

实现的主要是阴影部分的代码。

3、EditText特定字符的输入设置

在EditText文本框,我们经常需要使用在各个方面,比如密码框、邮箱地址、数字等。可以通过inputType的属性设置 如下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent" android:gravity="center_horizontal" >
	<TextView android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="使用android:digits属性(输入数字)" />
	<EditText android:layout_width="200dp" android:layout_height="wrap_content"
		android:layout_margin="10dp" <strong style="background-color: rgb(255, 255, 255);">android:digits="0123456789"</strong> />
	<TextView android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="使用android:digits属性(输入26个小写字母)" />
	<EditText android:layout_width="200dp" android:layout_height="wrap_content"
		android:layout_margin="10dp" <strong>android:digits="abcdefghijklmnopqrstuvwxyz"</strong> />
	<TextView android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="使用android:inputType属性(输入数字)" />
	<EditText android:layout_width="200dp" android:layout_height="wrap_content"
		android:layout_margin="10dp" <strong>android:inputType="number|textCapCharacters" </strong>/>
	<TextView android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="使用android:inputType属性(输入Email)" />
	<EditText android:layout_width="200dp" android:layout_height="wrap_content"
		android:layout_margin="10dp" <strong>android:inputType="textEmailAddress"</strong> />
	<TextView android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="使用android:numeric属性(输入有符号的浮点数)" />
	<EditText  android:layout_width="200dp" android:layout_height="wrap_content"
		android:layout_margin="10dp" <strong>android:numeric="decimal|signed"</strong> />
</LinearLayout>
4、AutoCompleteTextView自动完成输入内容的控件

AutoCompleteTextView其实这也是文本控件的一种,主要是利用AutoCompleteTextView.setAdapter方法指定一个Adapter对象。

下面举了一个例子:

public class Main extends Activity
{	
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		String[] autoString = new String[]
		{ "联合国", "联合国安理会", "联合国五个常任理事国", "bb", "bcd", "bcdf", "Google", "Google Map", "Google Android" };
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_dropdown_item_1line, autoString);
		// AutoCompleteTextView
		AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
		autoCompleteTextView.setAdapter(adapter);
		// MultiAutoCompleteTextView
		MultiAutoCompleteTextView multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
		multiAutoCompleteTextView.setAdapter(adapter);
		multiAutoCompleteTextView
				.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
	}
}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值