[Android] Jak stworzyć własny View przyjmujący input?


(Kamiljano) #1

No więc problem jest następujący:

tworzę w Androidzie własną kontrolkę dziedziczącą bezpośrednio po View, ale mam problem z wykorzystaniem klawiatury ekranowej...

Najpierw spróbowałem nadpisać następujące metody klasy View:

@Override

	public boolean onCheckIsTextEditor ()

	{

		return true;

	}


	@Override

	public InputConnection onCreateInputConnection (EditorInfo outAttrs)

	{

        BaseInputConnection fic = new BaseInputConnection(this, false);

        outAttrs.actionLabel = null;

        outAttrs.inputType = InputType.TYPE_NULL;

        outAttrs.imeOptions = EditorInfo.IME_ACTION_NEXT;

        return fic;

	}

ale w tym momencie klawiatura wciąż nawet się nie pojawiała w chwili, kiedy przyciskałem moją kontrolkę... toteż nadałem jej zdarzenie onClick

public void onClick(View v) {

				InputMethodManager imm = (InputMethodManager) Kontrolka.this.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

				imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

			}

Choć klawiatura zaczęła się wyświetlać, to metoda onKeyUp wciąż nie jest w ogóle wywoływana i nie wiem jak przechwycić dane, które wprowadzane są przez użytkownika...

Jak więc należy się do tego zabrać?