2017-07-16 2 views
0

Ich habe 2 Edittext im selben Layout und ich will, dass zu der Zeit einer der beiden bearbeitet wird nicht automatisch auf den anderen Edittext springt. Ich habe alles versucht! Hilfe.Entfernen EditText Autofokus zum Nachbarn EditText

Dieser Text muss das Textfeld ausfüllen ..................................... XML:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="50dp" 
     android:layout_marginTop="20dp" 
     android:orientation="horizontal" 
     android:focusable="true" 
     android:focusableInTouchMode="true"> 

     <EditText 
      android:id="@+id/editText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:hint="Axis name" 
      android:inputType="textPersonName" 
      android:text="@string/NomeAsse" 
      android:textAlignment="center" 
      android:textSize="20dp" 
      android:cursorVisible="false"/> 

     <EditText 
      android:id="@+id/editText2" 
      android:layout_width="206dp" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:hint="multiplier" 
      android:inputType="numberDecimal" 
      android:text="@string/ValoreAsse" 
      android:cursorVisible="false"/> 

     <TextView 
      android:id="@+id/nm" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:layout_weight="0.5" 
      android:text="---" 
      android:textAlignment="center" 
      android:textSize="23dp" /> 

     <TextView 
      android:id="@+id/kgm" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:layout_weight="0.5" 
      android:text="---" 
      android:textAlignment="center" 
      android:textSize="23dp" /> 

    </LinearLayout> 

Antwort

0

android hat keine einfache Art und Weise zu EditTexts zu springen, Sie addTextChangedListener verwenden müssen und die Länge und

zum Beispiel auf andere programical springen:

editTextOne.addTextChangedListener(new TextWatcher() { 

    public void afterTextChanged(Editable s) {} 

    public void beforeTextChanged(CharSequence s, int start, 
    int count, int after) { 
     if(s.length >4) // focuse to another editText 
    } 

    public void onTextChanged(CharSequence s, int start, 
    int before, int count) { 
    } 
    }); 
+0

Danke für die Antwort. Dieser Code funktioniert nicht, ich füge clearfocus hinzu, um zu sehen, ob das funktioniert. aber wenn die Zahl, die ich einfüge, die 4 Zeichen übersteigt, wird der Fokus entfernt, aber die Tastatur bleibt, ich möchte, dass ich drücke Enter auf meiner Tastatur, ich verlor den Fokus UND nicht auf andere EditText Autofokus UND Tastatur schließen. Lösungen? – Murdok

+0

@Murdok das ist nur Beispielcode zu lernen, das zu implementieren –

0

löse ich auf diese Weise.

Haupttätigkeit -> onCreate() ->

k.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) { if(i== EditorInfo.IME_ACTION_DONE){ //Clear focus here from edittext k.clearFocus(); InputMethodManager imm = (InputMethodManager) rootView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(rootView.getWindowToken(), 0); return true; } return false; } });

wobei k die EditText ist.