自定义键盘无法写入 TextView

Custom keyboard unable to write into TextView

我是 Android 工作室的新手,目前我正在尝试在应用程序中构建自定义键盘(不是服务键盘),我设法通过参考在线资源来完成它,但是当我尝试从 editText 切换到 TextView,我的键盘输入无法写入 TextView,TextView 有不同的方法吗?

我试过 textView.setText(InputType.TYPE_CLASS_TEXT); 该应用程序只是在这种情况下强制停止。

这是工作正常的 editText。

EditText editText = (EditText) findViewById(R.id.editText);  
myKeyboard keyboard = (myKeyboard) findViewById(R.id.keyboard);

editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
editText.setTextIsSelectable(true);

InputConnection inputConnection = editText.onCreateInputConnection(newEditorInfo());
keyboard.setInputConnection(inputConnection);

按下我的键盘时,TextView 下面的代码没有响应。

TextView textView = (TextView) findViewById(R.id.textView);  
myKeyboard keyboard = (myKeyboard) findViewById(R.id.keyboard);

textView.setRawInputType(InputType.TYPE_CLASS_TEXT);
textView.setTextIsSelectable(true);

这是我试过但应用被强制停止的代码。

TextView textView = (TextView) findViewById(R.id.textView);
myKeyboard keyboard = (myKeyboard) findViewById(R.id.keyboard);

textView.setText(InputType.TYPE_CLASS_TEXT);

供您参考,我提到的在线资源位于 How to make an Android custom keyboard? 提前致谢。

这是实现结果的一些替代方法。将 TextWatcher 添加到您的 editText, 并将其与您的 TextView 同步。代码如下:-

        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                TextView textView = findViewById(R.id.textView);
                textView.setText(s);
            }

            @Override
            public void afterTextChanged(Editable s) {
            }
        });