`
liliang1222
  • 浏览: 158559 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android:imeOptions属性

阅读更多

默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘



 

设置 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
分享到:
评论
1 楼 muziazheng 2015-05-25  
写的很好,学习了。。。

相关推荐

    Android中EditText 设置 imeOptions 无效问题的解决方法

    通常我们需要设置Android:imeOptions属性。Android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等 但是今天我发现设置了无效 那是因为我设置了 android:maxLines=”1″ 解决方法 就是去掉 ...

    Android开发EditText属性.txt

    ### Android开发中的EditText属性详解 #### 一、概述 `EditText`是Android中非常重要的一个控件,主要用于接收用户输入的文本。它继承自`TextView`,而`TextView`又继承自`View`,因此`EditText`具备了`View`和`...

    android开发textview属性详情

    2. android:imeOptions:设置IME 动作,例如 actionDone 等。 3. android:imeActionId:设置 IME 动作 ID。 4. android:imeActionLabel:设置 IME 动作标签。 5. android:includeFontPadding:设置文本是否包含...

    Android开发开发技巧之 EditText 属性大全.pdf

    ### Android开发技巧之 EditText 属性大全 在Android应用开发中,`EditText`是用于收集用户输入文本的关键组件之一。为了更好地理解和运用`EditText`的各种属性,本文将详细解析与`EditText`相关的各种属性及其用途...

    android-TextView属性详解

    15. android:imeOptions:设置输入法的附加功能,例如设置右下角IME动作,如"actionDone"。 16. android:imeActionId:设置IME动作的ID。 17. android:imeActionLabel:自定义IME动作的标签文本。 18. android:...

    Android学习笔记(二六):输入法.doc

    总结来说,Android中的输入法管理是一项关键功能,开发者可以通过`android:inputType`和`android:imeOptions`属性控制IME的行为,以适应各种输入场景,并能通过监听IME事件来实现特定的业务逻辑。理解并熟练运用这些...

    Android的一些属性.doc

    15. **android:imeOptions**:设置软键盘的Enter键行为,如"normal"、"actionGo"、"actionSearch"等。可以组合使用多个选项。 16. **android:imeActionId**:设置IME动作的ID,通常在`onEditorAction`回调中用于...

    EditTextDemo

    通过`android:imeOptions`和`android:inputType`属性,可以控制软键盘的行为。例如,设置“完成”按钮: ```xml android:imeOptions="actionDone" android:inputType="textCapSentences" /&gt; ``` 当用户点击...

    AndroidTextView属性详解[归类].pdf

    13. `android:imeOptions`和`android:imeActionId`、`android:imeActionLabel`:这三个属性与输入法有关,主要用于定义右侧IME按钮的行为,比如完成、搜索等。 14. `android:includeFontPadding`:默认为true,表示...

    android_xml属性.doc

    以下是一些关于Android XML属性的详细说明,主要集中在文本相关的属性: 1. `android:autoLink`:这个属性允许你自动识别并格式化文本中的URL、电子邮件、电话号码或地图地址,使其成为可点击的链接。可选值包括`...

    Android_UI_API最全中文文档

    * android:imeOptions:附加功能,设置右下角IME动作与编辑框相关的动作。 * android:imeActionId:设置IME动作ID。 * android:imeActionLabel:设置IME动作Label。 这些XML属性可以帮助开发者灵活地设置TextView的...

    [Android实例] 带clean按钮的输入框

    我们可以通过以下方式设置其基本属性: ```xml android:id="@+id/edit_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入内容..." android:inputType=...

    android属性汇总[参考].pdf

    12. `android:imeOptions`和`android:imeAction*`(ActionId, ActionLabel):与输入法有关,用于设置输入框右下角的IME操作,如“完成”按钮。 13. `android:inputType`:决定输入法应显示的键盘类型,如数字、...

    android TextView属性讲解

    `android:imeOptions` 用于设置虚拟键盘(IME)的行为,例如设置键盘上的操作按钮(如“完成”、“搜索”等),这对于`EditText`特别有用,但在`TextView`中无效。 #### 13. `android:inputType` 用于指定文本的...

    android_TextView属性详解

    15. **android:imeOptions** - **描述**:设置IME(输入法)动作与编辑框相关的动作,如`actionDone`表示右下角显示“完成”。 16. **android:imeActionId** - **描述**:设置IME动作ID。 17. **android:...

    Android_API详解

    - android:imeOptions:设置IME(输入法编辑器)操作,如完成按钮的显示。 - android:imeActionId:为IME操作设置ID。 - android:imeActionLabel:设置IME操作的标签。 - android:includeFontPadding:设置文本是否...

    Android中EditText的其他属性.pdf

    虽然这些属性可以提供很多便利,但开发者还需要考虑用户体验,例如,合理设置`android:maxLength`以防止过长的输入导致界面混乱,或者使用`android:imeOptions`来控制软键盘的行为。 5. 结论 熟悉并掌握EditText...

Global site tag (gtag.js) - Google Analytics