textField 允许用户在你的app UI上输入text。可以是单行或者多行.将光标放在text field上会在动现在软键盘.除了输入text外,你可以选择text来进行拷贝/剪贴/复制。以及还可以自动补全.
一个在layout文件中定义的EditType 如下:
<EditText
android:id="@+id/email_address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/email_hint"
android:inputType="textEmailAddress" />
其中android:inputType 还可以选择text|textEmailAddress|textUri|number|phone。来选择不同的键盘
还可以指定一些特殊的行为如:自动大写/自动补全等.
具体如下:textCapWords|textCapSentences|textAutoCorrect|textPassword|textMultiLine
<EditText
android:id="@+id/postal_address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/postal_address_hint"
android:inputType="textPostalAddress|
textCapWords|
textNoSuggestions" />
当用户输入在EditText中输入完成时,你还可以通过android:imeOptions指定特殊的行为.例如显示serch或者send 按键.
<EditText
android:id="@+id/search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/search_hint"
android:inputType="text"
android:imeOptions="actionSend" />
当时actionSend具体做什么事情呢?这就需要你在activity中重写TextView.OnEditorActionListner方法如下所示:
EditText editText = (EditText) findViewById(R.id.search);
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_SEND) {
sendMessage();
handled = true;
}
return handled;
}
});
可以使用EditText的子类AutoCompleteTextView 来建议用户输入.其中AutoCompleteTextView 在layout文件中定义如下:
<?xml version="1.0" encoding="utf-8"?>
<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/autocomplete_country"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
需要在res/value/strings.xml 中提供一个数据让用户在AutoCompleteTextView 时可以选择。
<?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>Antarctica</item>
...
</string-array>
</resources>
然后在你的activity中为AutoCompleteTextView 设定适配器就可以了
// Get a reference to the AutoCompleteTextView in the layout
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
// Get the string array
String[] countries = getResources().getStringArray(R.array.countries_array);
// Create the adapter and set it to the AutoCompleteTextView
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries);
textView.setAdapter(adapter);
一个在layout文件中定义的EditType 如下:
<EditText
android:id="@+id/email_address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/email_hint"
android:inputType="textEmailAddress" />
其中android:inputType 还可以选择text|textEmailAddress|textUri|number|phone。来选择不同的键盘
还可以指定一些特殊的行为如:自动大写/自动补全等.
具体如下:textCapWords|textCapSentences|textAutoCorrect|textPassword|textMultiLine
<EditText
android:id="@+id/postal_address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/postal_address_hint"
android:inputType="textPostalAddress|
textCapWords|
textNoSuggestions" />
当用户输入在EditText中输入完成时,你还可以通过android:imeOptions指定特殊的行为.例如显示serch或者send 按键.
<EditText
android:id="@+id/search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/search_hint"
android:inputType="text"
android:imeOptions="actionSend" />
当时actionSend具体做什么事情呢?这就需要你在activity中重写TextView.OnEditorActionListner方法如下所示:
EditText editText = (EditText) findViewById(R.id.search);
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_SEND) {
sendMessage();
handled = true;
}
return handled;
}
});
可以使用EditText的子类AutoCompleteTextView 来建议用户输入.其中AutoCompleteTextView 在layout文件中定义如下:
<?xml version="1.0" encoding="utf-8"?>
<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/autocomplete_country"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
需要在res/value/strings.xml 中提供一个数据让用户在AutoCompleteTextView 时可以选择。
<?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>Antarctica</item>
...
</string-array>
</resources>
然后在你的activity中为AutoCompleteTextView 设定适配器就可以了
// Get a reference to the AutoCompleteTextView in the layout
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
// Get the string array
String[] countries = getResources().getStringArray(R.array.countries_array);
// Create the adapter and set it to the AutoCompleteTextView
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries);
textView.setAdapter(adapter);