utworzyć jeden niestandardowy EditText jak postępować z jednego interfejsu:
public class CustomEditText extends EditText {
public void setHandleDismissingKeyboard(
handleDismissingKeyboard handleDismissingKeyboard) {
this.handleDismissingKeyboard = handleDismissingKeyboard;
}
private handleDismissingKeyboard handleDismissingKeyboard;
public interface handleDismissingKeyboard {
public void dismissKeyboard();
}
@SuppressLint("NewApi")
public CustomEditText(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// TODO Auto-generated constructor stub
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_UP) {
handleDismissingKeyboard.dismissKeyboard();
return true;
}
return super.dispatchKeyEvent(event);
}
następnie w swojej działalności stworzenia zainicjować CustomEditText i zastosowanie:
customEditText.setHandleDismissingKeyboard(this);
następnie wdrożyć klasy i zastąpić metodę i umieścić kod w że
po więcej informacji na temat mojej odpowiedzi wszystko, czego potrzebujesz, to onKeyPreIme
, możesz to zmienić w swojej klasie EditText (ponieważ ja post), aby obsłużyć wszystkie klucze, takie jak Back Key lub inny klucz klawiatury, umieszczam jeden interfejs wewnętrzny w klasie niestandardowej, aby uzyskać oddzwonienie z tej klasy do każdej aktywności lub klasy, którą chcesz, możesz to zrobić za pomocą również metodą statyczną, a jeśli chcesz uniknąć odrzucania klawiatury, możesz po prostu w tym celu zwrócić true
.
za korzystanie CustomEditText
można użyć XML lub w Javie, które definiują i zainicjować, że podobnie jak inne widget (Button, TextView, ...), a inny jest tylko trzeba określić to w xml jak:
<yourPackage.CustomEditText ..... />
@HareshChhelana przeczytać pytanie całkowicie –
moim zamiarem nie jest zamykanie/ukrywanie softkeyboard. Jego zapobieganie zamykaniu klawiatury na przycisku wstecz naciśnij –
To nie jest powielone pytanie. Dlaczego nie czytasz dokładnie tego pytania i po prostu zaznaczasz je jako powielone? –