2013-10-17 21 views
8

Ich habe eine Aktivität mit einem Scrollview mit einigen Schaltflächen und einem EditText So befinden sich die Schaltflächen oberhalb der EditText-Komponente.EditText: Vermeiden Sie den Fokus auf setText()

auf einem Knopf unter Verwendung EditText.setText("foo");

Leider wird eingestellt dieser Aufruf den Fokus auf die EditText Komponente Mit einem Klick auf der EditText Komponente seinen Text Wert ändern, so dass der Scroll scrollt zum EditText Komponente (Cursor blinkt).

Gibt es eine Möglichkeit, dies zu vermeiden?

Ich habe versucht, so etwas wie diese

public void setText(String t){ 
    editText.setFocusable(false) 
    editText.setFocusableInTouchMode(false); 
    editText.setText(t); 
    editText.setFocusable(true); 
    editText.setFocusableInTouchMode(true); 
} 

zu tun, aber das nicht funktioniert, und manchmal setFocusable(true) keinen Einfluss hat, so dass der EditText nicht mehr „klickbare“ ist.

+0

Versuchen Sie, die Fokussierbarkeit des EditText in XML zu ändern. –

+0

Aber es sollte noch editierbar sein – sockeqwe

+0

versuchen Sie mit der Einstellung textwatcher Listener als null und dann überprüfen. –

Antwort

0

In Ihrer Taste Verwendung unter Code

InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 

inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS); 

Siehe untenstehenden Link

android edittext remove focus after clicking a button

0

Verwendung diesen in Ihrem xml:

<EditText 
     android:clickable="false" 
     android:cursorVisible="false" 
     android:focusable="false" 
     android:focusableInTouchMode="false"> 
</EditText> 

oder

0

In Ihrer Taste Verwendung Code unten ......

InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 

inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS); 
Verwandte Themen