标签: ime

需要数量只有软键盘?

嗨,我需要一个软键盘只用数值09Enter关键.不应该显示除了这些之外的任何东西. , ( )......

在此输入图像描述

我尝试了这里建议的几个选项,但没有什么似乎对我有用.

  1. setRawInputType(Configuration.KEYBOARD_QWERTY)
  2. setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED)
  3. setRawInputType(InputType.TYPE_CLASS_NUMBER)
  4. setRawInputType(InputType.TYPE_CLASS_PHONE)

我总是在键盘上显示额外的字符,如:

在此输入图像描述

setRawInputType(Configuration.KEYBOARD_12KEY) 显示这样的键盘:

在此输入图像描述

非常感谢任何帮助.提前致谢.

注意:

  • android:minSdkVersion="14":ICS4.0
  • android:targetSdkVersion="17":JB 4.2

qwerty android ime android-softkeyboard android-input-method

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

Android:以编程方式切换到其他IME

http://developer.android.com/guide/topics/text/creating-input-method.html#GeneralDesign上 写着:

由于可以在设备上安装多个IME,因此为用户提供了一种直接从输入法UI切换到不同IME的方法.

假设我有两个输入方法的源,可以修改它.我想让用户快速切换它们,并准备为此保留一个按钮.如何"直接从输入法UI切换到不同的IME"?

android ime

11
推荐指数
2
解决办法
9285
查看次数

Android setOnEditorActionListener()不会触发

我正试图设置一个监听器,EditText当按下输入按钮时.但它根本没有发射.我使用Android 4.2.2在LG Nexus 4上进行了测试.setOnEditorActionListener适用于Android 2.3的亚马逊Kindle Fire,setImeActionLabel无处可用!我也无法为Enterbutton 设置文本.这是代码:

mEditText.setImeActionLabel("Reply", EditorInfo.IME_ACTION_UNSPECIFIED);
mEditText.setOnEditorActionListener(new OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId,
                KeyEvent event) {
            Log.d("TEST RESPONSE", "Action ID = " + actionId + "KeyEvent = " + event);
            return true;
        }  
    });
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我怎样才能解决这个问题?

java android ime

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

Android自定义键盘布局在侧面留下白色边缘

我正在研究Android的自定义键盘,我遇到了一个问题,键盘似乎在右边留下一个白线/空格,而不是填充父视图...(不要介意图标,它现在只是占位符图形)

模拟器的屏幕截图

下面你可以看到我的布局......

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyWidth="14%p"
    android:horizontalGap="0px"
    android:verticalGap="0px"
    android:keyHeight="60dp"
    >
    <Row>
        <Key android:codes="49" android:keyIcon="@drawable/rsz_emoji" android:horizontalGap="1%p" android:keyEdgeFlags="left"/>
        <Key android:codes="50" android:keyIcon="@drawable/rsz_emoji"/>
        <Key android:codes="51" android:keyIcon="@drawable/rsz_emoji"/>
        <Key android:codes="52" android:keyIcon="@drawable/rsz_emoji"/>
        <Key android:codes="53" android:keyIcon="@drawable/rsz_emoji"/>
        <Key android:codes="54" android:keyIcon="@drawable/rsz_emoji"/>
        <Key android:codes="48" android:keyIcon="@drawable/rsz_emoji" android:keyEdgeFlags="right"/>
    </Row>
    <Row>
        <Key android:codes="113" android:keyIcon="@drawable/rsz_emoji" android:horizontalGap="8%p" android:keyEdgeFlags="left"/>
        <Key android:codes="114" android:keyIcon="@drawable/rsz_emoji"/>
        <Key android:codes="116" android:keyIcon="@drawable/rsz_emoji"/>
        <Key android:codes="121" android:keyIcon="@drawable/rsz_emoji"/>
        <Key android:codes="111" android:keyIcon="@drawable/rsz_emoji"/>
        <Key android:codes="112" android:keyIcon="@drawable/rsz_emoji" android:keyEdgeFlags="right"/>
    </Row>
    <Row>
        <Key android:codes="1" android:keyIcon="@drawable/rsz_emoji" android:keyWidth="28%p" android:horizontalGap="8%p" android:keyEdgeFlags="left"/>
        <Key android:codes="46" android:keyIcon="@drawable/rsz_emoji" android:keyWidth="28%p"/>
        <Key android:codes="58" android:keyIcon="@drawable/rsz_emoji" android:keyWidth="28%p" android:keyEdgeFlags="right"/>
    </Row>
    <Row android:rowEdgeFlags="bottom">
        <Key android:codes="44" android:keyIcon="@drawable/globe" …
Run Code Online (Sandbox Code Playgroud)

xml keyboard android ime

11
推荐指数
2
解决办法
5034
查看次数

如何在Wndproc中专门在C#Winform中获取IME布局?

我有一个winform应用程序,我想在C#中获取当前输入语言的信息.我有windows 10机器,我选择了韩语.在选择韩语后,任务栏中有一个切换按钮可将输入语言更改为英语或韩语.

以下代码总是提供韩语,但是当我选择英语输入时它应该提供英语.

    [DllImport("user32.dll")]
    static extern IntPtr GetForegroundWindow();
    [DllImport("user32.dll")]
    static extern uint GetWindowThreadProcessId(IntPtr hwnd, IntPtr proccess);
    [DllImport("user32.dll")]
    static extern IntPtr GetKeyboardLayout(uint thread);
    public Form1()
    {
        InitializeComponent();
        IntPtr foregroundWindow = GetForegroundWindow();
        uint foregroundProcess = GetWindowThreadProcessId(foregroundWindow, IntPtr.Zero);
        int keyboardLayout = GetKeyboardLayout(foregroundProcess).ToInt32() & 0xFFFF;
        CultureInfo info = new CultureInfo(keyboardLayout);
        int keyboardLayoutId = info.KeyboardLayoutId;
        string name = info.Name;
    }
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来获取输入语言信息.

您可以找到相同的附加图像.我强调A作为英语输入. TaskBar屏幕截图英文输入

TaskBar截图韩文输入

我想在WndProc方法中提供这些信息.

问题总结:所以我想处理当用户切换语言通过切换按钮键入时的情况,当用户通过切换按钮切换语言时,我希望任何wndproc消息或窗口边事件获取语言信息.

c# ime winforms

11
推荐指数
1
解决办法
968
查看次数

Android IME的多个步骤组成一个字形

假设我想用自定义Android IME写一个字符'暂'.如果我想在按下"G"键后跟"E"时显示所述字形,我该如何处理它(G本身被分配给另一个代码).

我知道我可以将多个字符分配给同一个标签,如下所示,我将根据使用的点击频率获得不同的结果...

<Key android:codes="xx,yy" android:keyLabel="?"/>
Run Code Online (Sandbox Code Playgroud)

我的目标很相似,但有些不同.我希望通过做类似的事情,我可以获得预期的效果....

<Key android:codes="xx,xx+zz=yy" android:keyLabel="?"/>
Run Code Online (Sandbox Code Playgroud)

但这似乎并不是有效的做法.

android ime

11
推荐指数
1
解决办法
161
查看次数

如何在Android上创建多个IME(输入法编辑器)子类型?

我正在尝试创建多个IME子类型,但Android只能识别一个.

method.xml

<?xml version="1.0" encoding="utf-8"?>
<input-method
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsSwitchingToNextInputMethod="true"
    android:settingsActivity="com.example.softkeyboard.Settings">


    <subtype android:name="@string/display_name_english_keyboard_dynamic_ime"
        android:imeSubtypeLocale="en_US"
        android:imeSubtypeMode="keyboard"
        android:imeSubtypeExtraValue="charDataFile=strokemaps_dynamic" />

    <subtype android:name="@string/display_name_english_keyboard_ime"
        android:imeSubtypeLocale="en_US"
        android:imeSubtypeMode="keyboard"
        android:imeSubtypeExtraValue="charDataFile=strokemaps" />

</input-method>
Run Code Online (Sandbox Code Playgroud)

strings.xml中的每个名称都有值.

<resources>
<string name="app_name">KK1</string>
<string name="display_name_english_keyboard_ime">English</string>
<string name="display_name_english_keyboard_dynamic_ime">English Dynamic</string>
Run Code Online (Sandbox Code Playgroud)

我的InputMethodService.onStartInputView方法包括:

@Override
public void onStartInputView(EditorInfo ei, boolean restarting) {

    super.onStartInputView(ei, restarting);

    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    List<InputMethodInfo> imil = imm.getEnabledInputMethodList();
    for (InputMethodInfo imi: imil) {
        Log.e("osiv", "input method info: "+imi.toString());
    }

    List<InputMethodSubtype> imsl = imm.getEnabledInputMethodSubtypeList(imil.get(0), true);

    for (InputMethodSubtype ims: imsl) {
        Log.e("osiv", "input method subtype: "+ims.toString());
    }
Run Code Online (Sandbox Code Playgroud)

列出的InputMethodInfos包含我的IME,但子类型列表只包含一个子类型.如果它是文件中唯一的子类型,则每个子类型都起作用.

Android 8.0设备不会在其语言/键盘配置选项中显示子类型,只显示IME本身,因此无法单独启用或禁用子类型. …

keyboard android ime android-softkeyboard android-8.0-oreo

11
推荐指数
1
解决办法
594
查看次数

究竟是什么"id == EditorInfo.IME_NULL"?

我看到id == EditorInfo.IME_NULL除了另一个条件(例如输入键或IME动作)之外,还应该定期使用与"完成"或"输入"相匹配的地方,但是我找不到任何确切的解释.

android ime

10
推荐指数
1
解决办法
4515
查看次数

如何在Winform中获取韩文输入?

我想在winform应用程序中的ediatble区域中键入韩语文本.

但是人物正在重复,我试图覆盖默认值WndProc,但没有任何效果.

switch (m.WParam.ToInt32())
                {
case Common.Interop.Window.WM_IME_CHAR:
                break;

            case Common.Interop.Window.WM_IME_ENDCOMPOSITION:
                    PassCharToScreen(m);
                break;

            case Common.Interop.Window.WM_CHAR:
                    PassCharToScreen(m);
                break;

            case Common.Interop.Window.WM_IME_NOTIFY:
                break;
            case Common.Interop.Window.WM_IME_COMPOSITION:
                PassCharToScreen(m);
                break;
            case Common.Interop.Window.WM_IME_COMPOSITIONFULL:
                break;
Run Code Online (Sandbox Code Playgroud)

当我输入英文时,断点命中WM_CHAR,但是当我输入韩文时,它会击中WM_IME_COMPOSITION第一个字符,然后在第一个字符后首先命中WM_IME_COMPOSITION然后点击WM_CHAR.

我观察到它键入了第一个字符正确.例如ㅁ(韩文字符)输入第二个字符.ㅁㅂㅁ(First char,second char,first char).我想要记事本中的行为

c# ime winforms

10
推荐指数
1
解决办法
603
查看次数

如何让oninput()只在输入汉字而不是IME按键时触发?

我有一个基本的<input type="text" oninput="funct()"></input>.

\n\n

然而,当我输入中文时,oninput它也是由 IME 输入触发的,而不仅仅是结果字符。例如,当我用拼音输入法输入“\xe6\x88\x91\xe5\x80\x91”时,我的函数funct()显示console.log(WHAT_I_TYPED),控制台显示:

\n\n
    \n
  • w
  • \n
  • \n
  • 口碑营销
  • \n
  • 沃姆
  • \n
  • 女性
  • \n
  • \xe6\x88\x91\xe5\x80\x91
  • \n
\n\n

我希望它只读取“\xe6\x88\x91\xe5\x80\x91”。但是,我不想修改函数中的文本,因为中文输入法太多,无法实现。

\n

html javascript input function ime

8
推荐指数
1
解决办法
635
查看次数