如何在textview android中显示输入法选择器列表标题和摘要?

Posted

技术标签:

【中文标题】如何在textview android中显示输入法选择器列表标题和摘要?【英文标题】:How to display input method picker list title and summary in textview android? 【发布时间】:2021-04-17 11:24:53 【问题描述】:

我正在唱歌要选择的键盘视图。选择键盘后,如何在textview android中显示选中的键盘文字?

我只能显示语言但如何显示标题和摘要以更改键盘?

public class MainActivity extends AppCompatActivity 

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn = findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() 
            @RequiresApi(api = Build.VERSION_CODES.N)
            @Override
            public void onClick(View view) 

                InputMethodManager imm = (InputMethodManager) MainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showInputMethodPicker();
                InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
                String localeString = ims.getLocale();
                Locale locale = new Locale(localeString);
                String currentLanguage = locale.getDisplayLanguage();
                Toast.makeText(MainActivity.this,currentLanguage,Toast.LENGTH_SHORT)
                        .show();
               //Title and summary for change keyboard  need to display

            
        );
    

【问题讨论】:

【参考方案1】:

有两种方法可以解决这个问题,最简单的方法是使用非大小编辑文本

不要隐藏文本视图,如果它隐藏了,那么 edtTxt.getText().toString() 总是为空

<EditText
    android:id="@+id/edtTxt"
    android:layout_
    android:layout_ />

这样用户就看不到了。并点击按钮

edtTxt.requestFocus();
edtTxt.setText("");
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

inputMethodManager.toggleSoftInputFromWindow(edtTxt.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED,
            0);

现在edtTxt.getText().toString() 发短信。

如果没有 EditText,您将很难过。

一个 InputMethod 需要连接到一个视图。无论您使用哪种视图,您都需要重写 onCreateInputConnection 以返回一个自定义 InputConnection 对象,该对象至少实现 commitText(用于单词输入)、deleteSurroundingText(用于删除)和 sendKeyEvent(用于假定您处于哑模式的键盘),以及所有的完成功能。输入连接是复杂的事情,如果你不正确,你会搞砸 Swiftkey 和 Swype 等 3rd 方键盘。我真的不建议这样做。

如果你想这样做,最好的机会是声明你的窗口是 TYPE_NULL 输入类型。大多数键盘都会让自己变得笨拙,并假设您在该模式下只接受最简单的命令。但你不能指望它。

我会查看 EditText 类返回的 InputConnection 并尽可能多地复制它。

【讨论】:

嗨。谢谢你。但我仍然收到一个空文本。

以上是关于如何在textview android中显示输入法选择器列表标题和摘要?的主要内容,如果未能解决你的问题,请参考以下文章

Android IME:显示一个自定义弹出对话框(如 Swype 键盘),可以在 TextView 中输入文本

在android中怎样设置textview的文本

如何在开始时在android TextView中写入`@`符号

Android - 在 TextView 中突出显示一个单词?

Android:如何使用 dataBinding 在同一个 TextView 中显示多个值?

在Android中点击屏幕时如何在屏幕上显示多个标签(Textview)..? [关闭]