0

I'm new to Android studio, curently I'm trying to build a custom keyboard within an app(Not Service Keyboard), I manage to done it by referring online resources, but when I try to switched from editText to TextView, my keyboard input just unable to write into the TextView, is there a different method for TextView?

I tried something like textView.setText(InputType.TYPE_CLASS_TEXT); The app just forced stop in this situation.

This is the editText that works fine.

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);

Code below TextView has no respond while pressing on my keyboard.

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

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

This is the code that I have tried but app forced stopped.

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

textView.setText(InputType.TYPE_CLASS_TEXT);

For your information, the online resource that I referred to is at How to make an Android custom keyboard? Thanks in advance.

Nikunj Paradva
  • 15,332
  • 5
  • 54
  • 65
Nicholas
  • 15
  • 6

1 Answers1

0

This is some alternate way to achieve the result. Add a TextWatcher to your editText, and sync it with your TextView. Code shows as below:-

        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) {
            }
        });
Nicholas
  • 15
  • 6