我是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? 预先感谢。
答案 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) {
}
});