自定义键盘无法写入TextView

时间:2019-05-15 01:18:53

标签: android textview custom-keyboard

我是Android Studio的新手,目前我正在尝试在应用(非服务键盘)中构建自定义键盘,我设法通过引用在线资源来完成此操作,但是当我尝试从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? 预先感谢。

1 个答案:

答案 0 :(得分:0)

这是获得结果的另一种方法。将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) {
            }
        });