转载注明出处:http://blog.csdn.net/eana_don/article/details/8245849
在布局中每一个控件都必须有的是layout_width,layout_height.所以这里每个文本域类的控件都是需要这两个。而id则是根据需要指定。需要在代码中取出的控件或者被引用的控件就需要ID,如果只是做展示用,ID也可以不用。
文本框允许用户在应用程序中输入文本。它们可以是单行的,也可以是多行的。点击文本框后显示光标,并自动显示键盘。文本框还包含其它操作,比如文本选择(剪切,复制,粘贴)。
TextView直接继承自View,EditText继承自TextView,而AutoCompleteTextView又继承EditText。大部分Textview的xml属性都可以适用于其他二者。
1.TextView
首先列出TextView的常用xml属性:
android:autoLink --- 将符合指定格式的文本转化为可点击的超链接形式
android:drawableXXXX --- 在文本的上下左右绘制给定图像,XXXX为Bottom,Top,Left,Right
android:gravity --- 指定文本的对齐方式
android:hint --- 文本为空时,文本框内的提示内容
android:password --- 输入的文本内容不会以明文展示,而是密码的形式
android:singleLine --- 指定当行或多行,多行则超出文本宽度时自动换行
android:text --- 指定内容
android:textColor --- 指定字体颜色
android:textSize --- 指定字体大小
其余属性可以查看API,TextView用法如下。
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="1.限制输入类型:邮件地址类型"
/>
2.EditText
EditText用于用户输入数据,一般都是需要一个ID。用户输入数据可以对输入各种限制或者其他的作用。一下是一些常用的作用。
a.限制输入类型:邮件地址类型
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="@string/text_emailaddress_type"
/>
![](https://img-my.csdn.net/uploads/201212/01/1354331208_7677.jpg)
b.限制输入类型:手机输入类型
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="phone"
/>
c.指定键盘操作。当文本输入完毕用户点击发送或者回车时,执行的操作。需要指定一个xml属性imeOptions,并且指定动作完成时,需要执行什么操作,一般在Activity中写这段操作。
xml写法:
<EditText
android:id="@+id/action_edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:imeOptions="actionSend"
/>
Acitivity的写法。这里只是简单打印证明执行了操作:
EditText action_et = (EditText) findViewById(R.id.action_edittext);
action_et.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
// TODO Auto-generated method stub
if (actionId == EditorInfo.IME_ACTION_SEND) {
// Send the user message
Log.d("OnEditorAction", "EditorInfo.IME_ACTION_SEND");
return true;
}
return false;
}
});
输入操作:
执行结果:
d.添加链接到email admin@sina.com , 添加链接到phone 10086 , 添加链接到web www.baidu.com
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="6.添加链接到email admin@sina.com"
android:autoLink="email"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="7.添加链接到phone 10086"
android:autoLink="phone"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="8.添加链接到web www.baidu.com"
android:autoLink="web"
/>
![](https://img-my.csdn.net/uploads/201212/01/1354331921_3438.jpg)
![](https://img-my.csdn.net/uploads/201212/01/1354331934_3673.jpg)
e.让超出的文本自动省略
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="9.让超出宽度的字变成省略号让超出宽度的字变成省略号让超出宽度的字变成省略号让超出宽度的字变成省略号让超出宽度的字变成省略号" android:ellipsize="middle" />
![](https://img-my.csdn.net/uploads/201212/01/1354332040_2322.jpg)
f.修改样式
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="10.控制样式"
android:textSize="18sp"
android:textColor="#ff0000"
android:shadowColor="#000000"
android:shadowDx="15.0"
android:shadowDy="20.0"
android:shadowRadius="45.0"
android:drawableLeft="@drawable/ic_action_search"
/>
3.自动完成文本框
效果:当用户点击文本框输入时,根据用户输入的字搜索相关文本内容并出现下拉菜单。
a.使用数组作为数据来源 b.使用资源文件作为数据来源
布局文件为:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
>
<AutoCompleteTextView
android:id="@+id/auto_textview_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="以数组形成Adapter,请输入"
android:completionThreshold="1"
android:dropDownVerticalOffset="20dp"
android:textColor="#000000"
/>
<AutoCompleteTextView
android:id="@+id/auto_textview_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="以XML资源文件行程Adapter,请输入"
android:completionThreshold="1"
android:dropDownVerticalOffset="20dp"
android:textColor="#000000"
/>
</LinearLayout>
代码控制:
String[] language = new String[]{
"C",
"C++",
"Object C",
"JAVA",
"JE22",
};
/*
* 第一个自动完成文本框的处理
* */
autoTextView1 = (AutoCompleteTextView) findViewById(R.id.auto_textview_1);
//用ArrayAdapter封装数组
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
this,//传入的上下文
android.R.layout.simple_list_item_1,//指定外观形式
language//传递进的数组
);
autoTextView1.setAdapter(adapter1);
/*
* 第二个自动完成文本框的处理
* */
autoTextView2 = (AutoCompleteTextView) findViewById(R.id.auto_textview_2);
//用ArrayAdapter封装资源文件
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
this,//传入的上下文
android.R.layout.simple_list_item_1,//指定外观形式
getResources().getStringArray(R.array.countries_array)//传递进的数组
);
autoTextView2.setAdapter(adapter2);
数组资源文件:country_array.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="countries_array">
<item>Afghanistan</item>
<item>Albania</item>
<item>Algeria</item>
<item>American Samoa</item>
<item>Andorra</item>
<item>Angola</item>
<item>Anguilla</item>
<item>America</item>
<item>China</item>
<item>Japan</item>
<item>Korea</item>
<item>England</item>
</string-array>
</resources>