默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘
设置 android:imeOptions="actionDone" ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭
android:imeOptions="actionSend" 软键盘下方变成“发送”,点击后光标移动下一个
在这里设置的imeOptions如何使用呢?如下面的代码,让EditText实现setOnEditorActionListener,在onEditAction方法中actionId就对应我们设置的imeOptions。系统默认的actionId有:EditorInfo.IME_NULL、EditorInfo.IME_ACTION_SEND、EditorInfo.IME_ACTION_DONE等。这样我们就可以根据不同的EditText来实现不同的软键盘右下角功能键。
package com.test;
import com.test.main.TestAsyn;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
public class IMFActivity extends Activity implements OnEditorActionListener {
EditText etDefault;
EditText etEmail;
EditText etNumber;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.imf_layout);
etDefault = (EditText)findViewById(R.id.default_content);
etEmail = (EditText)findViewById(R.id.email_content);
etNumber = (EditText)findViewById(R.id.number_content);
etDefault.setOnEditorActionListener(this);
etEmail.setOnEditorActionListener(this);
etNumber.setOnEditorActionListener(this);
}
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
switch(actionId){
case EditorInfo.IME_NULL:
System.out.println("null for default_content: " + v.getText() );
break;
case EditorInfo.IME_ACTION_SEND:
System.out.println("action send for email_content: " + v.getText());
break;
case EditorInfo.IME_ACTION_DONE:
System.out.println("action done for number_content: " + v.getText());
break;
}
//Toast.makeText(this, v.getText()+"--" + actionId, Toast.LENGTH_LONG).show();
return true;
}
}
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TableLayout android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow>
<TextView android:text="No special rules" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="1111111111111" android:id="@+id/default_content"
android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText>
</TableRow>
<TableRow>
<TextView android:text="Email address:" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/email_content"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:inputType="text|textEmailAddress"
android:imeOptions="actionSend"></EditText>
</TableRow>
<TableRow>
<TextView android:text="Signed decimal number:" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/number_content"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:inputType="number|numberSigned|numberDecimal"
android:imeOptions="actionDone"></EditText>
</TableRow>
</TableLayout>
</ScrollView>
- 大小: 48.5 KB
- 大小: 51.5 KB
- 大小: 48.2 KB
分享到:
相关推荐
通常我们需要设置Android:imeOptions属性。Android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等 但是今天我发现设置了无效 那是因为我设置了 android:maxLines=”1″ 解决方法 就是去掉 ...
### Android开发中的EditText属性详解 #### 一、概述 `EditText`是Android中非常重要的一个控件,主要用于接收用户输入的文本。它继承自`TextView`,而`TextView`又继承自`View`,因此`EditText`具备了`View`和`...
2. android:imeOptions:设置IME 动作,例如 actionDone 等。 3. android:imeActionId:设置 IME 动作 ID。 4. android:imeActionLabel:设置 IME 动作标签。 5. android:includeFontPadding:设置文本是否包含...
### Android开发技巧之 EditText 属性大全 在Android应用开发中,`EditText`是用于收集用户输入文本的关键组件之一。为了更好地理解和运用`EditText`的各种属性,本文将详细解析与`EditText`相关的各种属性及其用途...
15. android:imeOptions:设置输入法的附加功能,例如设置右下角IME动作,如"actionDone"。 16. android:imeActionId:设置IME动作的ID。 17. android:imeActionLabel:自定义IME动作的标签文本。 18. android:...
总结来说,Android中的输入法管理是一项关键功能,开发者可以通过`android:inputType`和`android:imeOptions`属性控制IME的行为,以适应各种输入场景,并能通过监听IME事件来实现特定的业务逻辑。理解并熟练运用这些...
15. **android:imeOptions**:设置软键盘的Enter键行为,如"normal"、"actionGo"、"actionSearch"等。可以组合使用多个选项。 16. **android:imeActionId**:设置IME动作的ID,通常在`onEditorAction`回调中用于...
通过`android:imeOptions`和`android:inputType`属性,可以控制软键盘的行为。例如,设置“完成”按钮: ```xml android:imeOptions="actionDone" android:inputType="textCapSentences" /> ``` 当用户点击...
13. `android:imeOptions`和`android:imeActionId`、`android:imeActionLabel`:这三个属性与输入法有关,主要用于定义右侧IME按钮的行为,比如完成、搜索等。 14. `android:includeFontPadding`:默认为true,表示...
以下是一些关于Android XML属性的详细说明,主要集中在文本相关的属性: 1. `android:autoLink`:这个属性允许你自动识别并格式化文本中的URL、电子邮件、电话号码或地图地址,使其成为可点击的链接。可选值包括`...
* android:imeOptions:附加功能,设置右下角IME动作与编辑框相关的动作。 * android:imeActionId:设置IME动作ID。 * android:imeActionLabel:设置IME动作Label。 这些XML属性可以帮助开发者灵活地设置TextView的...
我们可以通过以下方式设置其基本属性: ```xml android:id="@+id/edit_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入内容..." android:inputType=...
12. `android:imeOptions`和`android:imeAction*`(ActionId, ActionLabel):与输入法有关,用于设置输入框右下角的IME操作,如“完成”按钮。 13. `android:inputType`:决定输入法应显示的键盘类型,如数字、...
`android:imeOptions` 用于设置虚拟键盘(IME)的行为,例如设置键盘上的操作按钮(如“完成”、“搜索”等),这对于`EditText`特别有用,但在`TextView`中无效。 #### 13. `android:inputType` 用于指定文本的...
15. **android:imeOptions** - **描述**:设置IME(输入法)动作与编辑框相关的动作,如`actionDone`表示右下角显示“完成”。 16. **android:imeActionId** - **描述**:设置IME动作ID。 17. **android:...
- android:imeOptions:设置IME(输入法编辑器)操作,如完成按钮的显示。 - android:imeActionId:为IME操作设置ID。 - android:imeActionLabel:设置IME操作的标签。 - android:includeFontPadding:设置文本是否...
虽然这些属性可以提供很多便利,但开发者还需要考虑用户体验,例如,合理设置`android:maxLength`以防止过长的输入导致界面混乱,或者使用`android:imeOptions`来控制软键盘的行为。 5. 结论 熟悉并掌握EditText...