标签: ime

如何处理ImeOptions的完成按钮点击?

我正在EditText设置以下属性,以便在用户单击EditText时可以在键盘上显示完成按钮.

editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
Run Code Online (Sandbox Code Playgroud)

当用户点击屏幕键盘上的完成按钮(完成输入)时,我想更改RadioButton状态.

如何从屏幕键盘上点击完成按钮?

在此输入图像描述

android ime android-edittext

172
推荐指数
8
解决办法
18万
查看次数

将EditText imeOptions设置为actionNext无效

我有一个相当复杂(不是真正的)xml布局文件.其中一个视图是v1带有两个子节点的LinearLayout():EditText(v2)和另一个LinearLayout(v3).子LinearLayout又有一个EditText(v4)和一个ImageView(v5).

对于EditText v2,我将imeOptions作为

android:imeOptions="actionNext"
Run Code Online (Sandbox Code Playgroud)

但是,当我运行应用程序时,键盘return不会检查next,我希望它更改为next.我该如何解决这个问题?

此外,当用户点击下一步时,我希望焦点转到EditText v4.我这样做吗?

对于那些真正需要查看代码的人:

<LinearLayout
        android:id="@+id/do_txt_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/col6"
        android:orientation="vertical"
        android:visibility="gone" >

        <EditText
            android:id="@+id/gm_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="@drawable/coldo_text"
            android:hint="@string/enter_title"
            android:maxLines="1"
            android:imeOptions="actionNext"
            android:padding="5dp"
            android:textColor="pigc7"
            android:textSize="ads2" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:orientation="horizontal" >

            <EditText
                android:id="@+id/rev_text"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="center_vertical"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/coldo_text"
                android:hint="@string/enter_msg"
                android:maxLines="2"
                android:padding="5dp"
                android:textColor="pigc7"
                android:textSize="ads2" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center_vertical"
                android:background="@drawable/colbtn_r”
                android:clickable="true"
                android:onClick=“clickAct”
                android:paddingLeft="5dp"
                android:paddingRight="5dp"
                android:src="@drawable/abcat” />
        </LinearLayout>
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android focus ime android-layout

85
推荐指数
12
解决办法
4万
查看次数

Android:编辑文本转到按钮

我有一个编辑文本,定义如下.

<EditText  
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="text" 
android:hint="@string/field_text"
android:id="@+id/field"
/>
Run Code Online (Sandbox Code Playgroud)

我想设置一个自定义命令,以便当有人点击屏幕键盘上的Done/Go按钮时,单击一个按钮或只运行按钮运行的方法.我认为这与ime选项有关,但我还没弄清楚它们是如何工作的.在此先感谢您的帮助!

android edit ime

57
推荐指数
1
解决办法
4万
查看次数

setImeOptions:为什么软键盘上没有显示"完成"按钮?

我尝试使用input.setImeOptions(EditorInfo.IME_ACTION_DONE)在软键盘上设置"完成"按钮;

但"完成"按钮根本不会显示在软键盘上.

有什么建议吗?

public void modif(int position) {
    AlertDialog.Builder alert = new  AlertDialog.Builder(MainActivity.this);
    alert.setTitle("Modifica");
    EditText input = new EditText(MainActivity.this);
    input.setImeOptions(EditorInfo.IME_ACTION_DONE);
    alert.setView(input);
    final Editable value = input.getText();
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {  
        public void onClick(DialogInterface dialog, int whichButton) {
            Toast.makeText(getApplicationContext(), value,   Toast.LENGTH_LONG).show();
        }
    });

    alert.setNegativeButton("Cancel", new     DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
        // Canceled.
        }
    });
    alert.show();                   
}
Run Code Online (Sandbox Code Playgroud)

android ime android-softkeyboard

30
推荐指数
1
解决办法
2万
查看次数

为什么设置JDialog或JFrame setVisible(true)来切换我的IME设置?

我发现当我在Java swing应用程序中显示一个JDialog或一个新的时JFrame,我将在Windows 7中将我的中文输入法从半字节模式切换到全字节模式.

为什么调用对话框或框架setVisible(true)方法来切换我的IME设置?

有谁知道代码有什么问题,或者它是Java的错误?

重现问题的过程:

  1. 运行应用程序.
  2. 将您的语言更改为中文输入法之一,例如.中文(繁体) - 快速
  3. 单击程序中的按钮

我的语言设置

在此输入图像描述

我发现了一个类似的问题,通过Java中的Windows 7输入法自动切换字符宽度

并且在添加默认语言环境后,它仍然无法正常工作

import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Locale;

public class MainWindow {

private JFrame frame;
private Locale l;

/**
 * Create the application.
 */
public MainWindow() {
    initialize();
}

/**
 * Initialize the contents of the frame.
 */
private void initialize() {

    l = new Locale("zh", …
Run Code Online (Sandbox Code Playgroud)

java swing jdialog ime

19
推荐指数
2
解决办法
1027
查看次数

如何使用ActionDone按钮实现Multiline EditText(不带Enter按钮)

我有EditText,用于在消息(电子邮件,短信)上输入内容.我希望消息能够立即发布在ActionDone按钮上.我使用以下代码:

message.setOnEditorActionListener((textView, i, keyEvent) -> {
            switch (i) {
                case EditorInfo.IME_ACTION_DONE:
                    if (messageCanBePosted()) {
                        SoftKeyboard.hide(message);
                        postMessage();
                        return true;
                    } else {
                        return false;
                    }
                default:
                    return false;
            }
        }); 
Run Code Online (Sandbox Code Playgroud)

但我也希望这个消息字段是多行的,就像在任何其他信使应用程序中一样.我可以用这条线来实现它:

android:inputType="textMultiLine"
Run Code Online (Sandbox Code Playgroud)

问题是在添加此行后,ActionDone按钮开始像Enter按钮一样.所以我EditorInfo.IME_ACTION_DONE从来没有调用过捕获的回调.因此,每次用户按下该按钮光标移动到新行而不是发布消息.

如何保持EditText的多行行为(在多行显示文本的能力)和ActionDone按钮?

android multiline ime android-edittext imeoptions

18
推荐指数
3
解决办法
1万
查看次数

Google输入工具"API" - 可以使用吗?

我注意到Google通过网址接受任何语言的音译和IME请求:

https://inputtools.google.com/request?text=$&itc=$&num=$\
    &cp=0&cs=1&ie=utf-8&oe=utf-8&app=test
Run Code Online (Sandbox Code Playgroud)

$对于任何语言和文本,where 是下面的变量.

例如,法语(试一试):

var text = "ca me plait",
    itc = "fr-t-i0-und",
    num = 10;
// Result:
[
    "SUCCESS",
    [
        [
            "ca me plait",
            [
                "ça me plaît"
            ]
        ]
    ]
]
Run Code Online (Sandbox Code Playgroud)

或者,普通话(试试):

var text = "shide",
    itc = "zh-t-i0-pinyin",
    num = 5;
// Result: 
[
    "SUCCESS",
    [
        [
            "shide",
            [
                "??",
                "??",
                "??",
                "??",
                "??"
            ],
            [],
            {
                "annotation": [
                    "shi de",
                    "shi de",
                    "shi de",
                    "shi de",
                    "shi de"
                ] …
Run Code Online (Sandbox Code Playgroud)

google-api ime google-input-tools

16
推荐指数
1
解决办法
5761
查看次数

如何确定Android中的当前IME?

我有一个应用程序,我想警告用户,如果他们没有使用默认的Android软键盘.(即他们使用Swype或其他东西).

如何查看当前选择的输入法?

keyboard android ime android-input-method

15
推荐指数
2
解决办法
8082
查看次数

你怎么用IME?

我想制作一个处理用户输入的控件,所以我希望能够处理不同的键盘,其中一种方法是使用IME.

如果您不处理它,当您有IME激活时会出现一个浮动窗口(例如日语写入活动).我发现需要处理的消息,但我不知道如何发送我正在捕获到IME的密钥以及何时获得有效的转换字符.

windows winapi ime

14
推荐指数
1
解决办法
1万
查看次数

Android - 不支持的服务:音频

我正在尝试理解和解决我在Eclipse工作区日志中看到的错误,同时处理实现IME的Android应用程序.我是Android和Eclipse的新手.

错误是"com.utterkaos.keyboard.LatinKeyboardView无法实例化".

关联的堆栈跟踪是:

java.lang.UnsupportedOperationException:不支持的服务:位于android.inputmethodservice的android.inputmethodservice.KeyboardView(KeyboardView.java:376)的com.android.layoutlib.bridge.android.BridgeContext.getSystemService(BridgeContext.java:434)中的音频. KeyboardView.(KeyboardView.java:279)at com.utterkaos.keyboard.LatinKeyboardView.(LatinKeyboardView.java:30)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.lang.reflect.Constructor.newInstance(Unknown Source)at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java: 402)在android.view.BridgeInflater的android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)的com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:166) .createViewFromTag(BridgeI nflater.java:135)在android.view.LayoutInflater.inflate(LayoutInflater.java:466)的android.view.LayoutInflater.inflate(LayoutInflater.java:372)at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate (RenderSessionImpl.java:321)com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:324)位于com的com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325). android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372)at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart .java:1361)位于com.android.ide.eclipse.adt.internal.editors.layout的com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1115) .gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:941)位于com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate.delegatePageChange(LayoutEditorDeleg)ate.java:450)位于org.eclipse.ui.part.MultiPageEditorPart.setActivePage(MultiPageEditorPart.java)的com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.pageChange(CommonXmlEditor.java:358) 1067)在com的com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.selectDefaultPage(AndroidXmlEditor.java:380)的org.eclipse.ui.forms.editor.FormEditor.setActivePage(FormEditor.java:607) .android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.addPages(AndroidXmlEditor.java:285)位于com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.addPages(CommonXmlEditor.java:283)在org.eclipse.ui.ui.Editor.AdditorReference上的org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:138)org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:348) .createPartHelper(EditorReference.java:670)位于org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workbe)的org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)nchPartReference.java:595)org.eclipse.ui.Uternal中的org.eclipse.ui.internal.Editor.Reference.getEditor(EditorReference.java:289)org.eclipse.工作台上的org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945)位于org.eclipse.ui.internal.WorkbenchPage $ 10.run(WorkbenchPage.java :org.eclipse.Swt.custom.BusyIndi​​cator.showWhile(BusyIndi​​cator.java:70)org.eclipse.ui.Uternal中的org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)org.eclipse.ui.internal. org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2764)上的org.eclipse.ui.ide.IDE.openEditor(IDE.java:651)中的WorkbenchPage.openEditor(WorkbenchPage.java:2773)位于org.eclipse.jdt.internal.ui的org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:355)的.eclipse.ui.ide.IDE.openEditor(IDE.java:610) .javaeditor.EditorUtility.openInEditor(EditorUt ility.java:164)org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:249)org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:228)org位于org.eclipse.jdt.internal.ui的org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:251)的.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:275) .packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:376)atg.eclipse.jdt.internal.ui.packageview.PackageExplorerPart $ 4.open(PackageExplorerPart.java:538)org.eclipse.ui.OpenAndLinkWithEditorHelper $ InternalListener.open( OpenAndLinkWithEditorHelper.java:48)在org.eclipse的org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)的org.eclipse.jface.viewers.StructuredViewer $ 2.run(StructuredViewer.java:866). ui.internal.JFaceUtil $ 1.run(JFaceUtil.java:49)org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredVi)ewer.java:864)在org.eclipse上的org.eclipse.jer上的org.eclipse.jer.j上的org.eclipse.tructersView.handleOpen(StructuredViewer.java:1152)org.eclipse. jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:275)atg.eclipse.jface.util.OpenStrategy.access $ 2(OpenStrategy.java:269)org.eclipse.jface.util.OpenStrategy $ 1.handleEvent(OpenStrategy. java:309)org.eclipse.swt.wtt.EndTable.sendEvent(EventTable.java:84)atg.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)org.eclipse.swt.widgets .Display.runDeferredEvents(Display.java:4165)位于org.eclipse.wt.ui.Worky.RunEventLoop(Workbench.java:2701)的org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)org.eclipse.ui.internal.Workbench.access $ 4(Workbench.java:2499)org.eclipse.ui.internal.Workbench $ 7.在org.eclipse.core.databinding.observable.Realm.runW上运行(Workbench.java:679)ithDefault(Realm.java:332)位于org.eclipse.ui的org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)的org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) .internal.ide.application.IDEApplication.start(IDEApplication.java:123)位于org.eclipse.core.runtime.internal.adaptor的org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) .EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)位于org.eclipse.core.runtime.adaptor.EclipseStarter.run上的org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)(EclipseStarter) .java:344)atg.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)在org.eclipse.equinox.launcher.Main.in的java.lang.reflect.Method.invoke(未知来源)的sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在org.eclipse上的org.eclipse.equinox.launcher.Main.run(Main.java:1410)的org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)上的vokeFramework(Main.java:622) .equinox.launcher.Main.main(Main.java:1386)

LatinKeyboardView.java的相关部分是:

public class LatinKeyboardView extends KeyboardView {

    static final int KEYCODE_OPTIONS = -100;

    public LatinKeyboardView(Context …
Run Code Online (Sandbox Code Playgroud)

audio android ime

13
推荐指数
1
解决办法
2959
查看次数