Да, когда мы говорим о программируемой клавиатуре, это означает, что ее не так просто использовать. Кстати, методы, которые относятся к программируемой клавиатуре, не дают ожидаемого результата. Например:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
//do something
return super.onKeyDown(keyCode, event);
}
Обходной путь, который я нашел, - это использование TextWatcher. Используйте этот код для вашего приложения
YourEdit = (EditText) findViewById(R.id.YourEdit);
YourEdit.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged (Editable s)
{
//checking of TextWatcher functionality
Toast.makeText(mContext, "afterTextChanged", 3).show();
//do something
}
public void beforeTextChanged (CharSequence s, int start, int count, int after)
{
//checking of TextWatcher functionality
Toast.makeText(mContext, "beforeTextChanged", 3).show();
//do something
}
public void onTextChanged (CharSequence s, int start, int before, int count)
{
//checking of TextWatcher functionality
Toast.makeText(mContext, "onTextChanged", 3).show();
//do something
}
});
Эти методы вызываются последовательно: beforeTextChanged, onTextChanged и afterTextChanged. Вы можете поймать любой этап изменения текста.
Удачи!