当前位置:首页 > Android > 正文内容

EditText imeOptions属性

jsc10年前 (2016-04-14)Android4540

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

1.png

设置 android:imeOptions="actionDone" ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭

2.png

android:imeOptions="actionSend" 软键盘下方变成“发送”,点击后光标移动下一个

3.png

在 这里设置的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>


扫描二维码推送至手机访问。

版权声明:本文由微小站发布,如需转载请注明出处。

本文链接:https://jsc0.com/post/109.html

分享给朋友:

“EditText imeOptions属性” 的相关文章

Android--SQLite(增,删,改,查)操作

            需要5个类:1.实体类:Person.java 2.抽象类:SQLOperate.java(封装了对数据库的操作) 3.助手类:DBOpenHelper.j...

使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果。

使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果。

在工作中又很多需求都不是android系统自带的控件可以达到效果的,内置的TabHost就是,只能达到简单的效果 ,所以这个时候就要自定义控件来达到效果:这个效果就是: 使用自定义RadioButton和ViewPager实现TabHost带滑动的页卡效果。    &...

Fragment生命周期

Fragment生命周期

onAttach方法:Fragment和Activity建立关联的时候调用。onCreateView方法:为Fragment加载布局时调用。onActivityCreated方法:当Activity中的onCreate方法执行完后调用。onDestroyView方法:Fragment中的布局被移除时...

google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

    了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一张图片中扫一下竟然能直接加好友,不可思议啊,那时候还不了解二维码,呵呵,然后做项目的时候,老板说要加上二维码扫描功能,然后自己的屁颠屁颠的去百度,google...

创建Popwindow弹出菜单的两种方式

创建Popwindow弹出菜单的两种方式

方法一的Activity package com.app.test02; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.v...

Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标

Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标

注:(图中每一个条目和图标都是由代码动态生成) 代码动态布局,并需要为每一个条目设置图标,此时用到了 android:drawableLeft="@drawable/icon" ...