5

Wiem, że istnieje sporo pytań dotyczących tego pytania. Ale żaden z nich nie ma odpowiedzi, której szukam.Wyczyść fokus EditText po naciśnięciu przycisku Wstecz przy wyświetlaniu klawisza programowalnego

Mam 7 ET wewnątrz ScrollView. Kiedy uruchomić aplikację ET nie ma skupić bo Dodałem następujące dwa wiersze do mojego ogólnego układu:

android:focusable="true" 
android:focusableInTouchMode="true" 

Kiedy klikam na ET the softkeyboard jest pokazane, co chcę, a następnie ustawić wartość (powiedzmy 20). Naciskam "2", a następnie "0", a następnie naciskam przycisk "Wstecz". W tym momencie klawiatura znika, ale ostrość pozostaje. Chciałbym również usunąć fokus, naciskając przycisk Wstecz, aby ukryć klawiaturę.

Ponieważ po usunięciu fokusu układ ET jest ustawiony tak, jak chcę.

Oni wszyscy mają o jakiś kod, który jest:

// Right Cable 
    RightCable = (EditText) findViewById (R.id.RightCable); 
    RightCable.setRawInputType(Configuration.KEYBOARD_12KEY); 
    RightCable.setOnFocusChangeListener(FocusChanged); 
    RightCable.addTextChangedListener(new TextWatcher() { 
     public void afterTextChanged(Editable s) { 
      if(RightCable.isFocused()){ 
       LengthRightCable  = Double.parseDouble(RightCable.getText().toString()); 
       Calculate(); 
      } 
     } 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      if(s.toString().matches("")) { 
       RightCable.setText("0.00"); 
       Selection.setSelection(RightCable.getText(), 0, 4); 
      } 
     } 
    }); 

używam ostrości słuchacza, aby zmienić wejście ET do liczby jak 5.00 zamiast 0.

OnFocusChangeListener FocusChanged = new OnFocusChangeListener() { 

    public void onFocusChange(View v, boolean hasFocus) { 

     EditText et = (EditText) v; 

     et.setSelection(0, et.getText().length()); 

     if(!hasFocus){ 
      String userInput = et.getText().toString(); 

      int dotPos = -1;  

      for (int i = 0; i < userInput.length(); i++) { 
       char c = userInput.charAt(i); 
       if (c == '.') { 
        dotPos = i; 
       } 
      } 

      if (dotPos == -1){ 
       et.setText(userInput + ".00"); 
      } else if(userInput.length() < 5) { 
       if (userInput.length() - dotPos == 1) { 
        et.setText(userInput + "00"); 
       } else if (userInput.length() - dotPos == 2) { 
        et.setText(userInput + "0"); 
       } 
      } 
     } 
    } 

}; 
+0

znalazłeś rozwiązanie tego problemu? – PrisonMike

+0

Gorąco polecam odpowiedź Kacy w załączonym linku: http://stackoverflow.com/questions/13975058/make-edittext-lose-focus-on-back-press –

Odpowiedz

0

W tym celu należy pobrać onTouchListener w układzie nadrzędnym pliku układu. na TouchListener musisz kodować, aby ukryć klawiaturę po kliknięciu poza EditText. Aby rozwiązać ten problem, postępuj zgodnie z poniższym układem XML i klasą Java.

proszę postępować zgodnie wykonaj następujące url Aby rozwiązać ten problem http://amitthaperandroidquery.blogspot.com/2011/10/remove-keyboard-after-click-outside.html

+0

Jeśli masz jakieś pytanie, opublikuj na moim blogu lub komentarzu to –

+0

Dzięki temu jest miło wiedzieć, ale niestety nie to, czego szukałem. – patrick

+0

Chcesz tego, jeśli nacisnę klawisz Back, wtedy klawiatura będzie niewidoczna, a nacisk na edycję tekstu zostanie wydany. Dobrze? –

Powiązane problemy