2016-11-06 1 views
5

Ich möchte die Tastatur ausblenden, indem Sie außerhalb von Editiertext tippen. Das ist mein xml-Code:Wie kann man die Tastatur nur durch einen Tipp außerhalb eines Editiertext ausblenden?

<RelativeLayout 
android:clickable="true" 
android:focusable="true" 
android:focusableInTouchMode="true" 
android:onClick="rl_main_onClick"> 
<RelativeLayout 
    //Here there are some widgets including some edittext. 
</RelativeLayout> 

Das ist mein Java-Code (MainActivity):

public void rl_main_onClick(View view) { 
    InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); 
} 

Aber ich habe zweimal tippen Tastatur auszublenden. Beim ersten Antippen ändert sich "next" (für den letzten editedtext ist es "done"), um das Symbol einzugeben, dann wird beim zweiten Antippen die Tastatur ausgeblendet. Dies ist, was die von der ersten Anzapfung passieren:

What the first tap does.

Jetzt habe ich zwei Fragen:

1- Wie kann ich es und versteckt Tastatur mit nur einem Hahn beheben?

2- Ist es möglich, es für alle meine Editiertext (ein Code für alle) zu tun?

Vielen Dank im Voraus.

Antwort

7

Versuchen Sie, onClick durch onTouch zu ersetzen. Dazu Sie Ihr Layout ändern müssen Attribute wie folgt aus:

<RelativeLayout 
    android:id="@+id/relativeLayout" 
    android:clickable="true" 
    android:focusable="true" 
    android:focusableInTouchMode="true"> 

    <RelativeLayout> 

     // widgets here 

    </RelativeLayout> 

</RelativeLayout> 

Dann rl_main_onClick(View view) {...} Methode entfernen und onTouch Listener-Methode einfügen innerhalb von onCreate():

findViewById(R.id.relativeLayout).setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); 
     return true; 
    } 
}); 
Verwandte Themen