2016-07-28 11 views
1

Ich muss eine klare Schaltfläche rechts neben einem Bearbeitungstext anzeigen und sie ausblenden, wenn der Text "" ist. Wie kann ich das machen.Wie zeigt man nach dem ersten Zeichen eine "Löschtaste" und versteckt es, wenn der Text "" ist?

Ich muss nur wissen, wie man es ein- und auszublenden, wenn die Textlänge> 0 oder = 0, nichts mehr.

+1

Verwendung TextWatcher – DKV

+0

Mögliche Duplikat [Zählen Chars in EditText Changed Listener] (http://stackoverflow.com/questions/4310525/counting-chars-in-edittext-changed-listener) –

+0

Werfen Sie einen Blick auf diese http://www.devexchanges.info/2015/04/android-edittext-with -cross-button-in.html –

Antwort

1

diesem Code

Field1.addTextChangedListener(new TextWatcher() { 

    @Override 
     public void afterTextChanged(Editable s) {} 

    @Override  
     public void beforeTextChanged(CharSequence s, int start, 
     int count, int after) { 
     } 

    @Override  
    public void onTextChanged(CharSequence s, int start, 
     int before, int count) { 
     if(s.length() != 0) 
     // set the visibility 
    } 
    }); 
+0

@andri: Didi du kannst das – DKV

1

Setzen Sie es Sichtbarkeit GONE von XML.

If(editText1.getText.toString.length>0) 
{ 
    if(button1.getVisibility == View.GONE) 
    { 
    button1.setVisibility(View.VISIBLE) 
    } 
} 
else 
{ 
if(button1.getVisibility == View.VISIBLE) 
    { 
    button1.setVisibility(View.GONE) 
    } 
} 
+0

Warum GONE und nicht UNSICHTBAR? –

1

können Sie versuchen, eine TextWatcher, eine Art von Listener verwenden:

yourEditText.addTextChangedListener(new TextWatcher() { 

     public void afterTextChanged(Editable s) { 

     //Here, you can check for text size... 
     int length = editText.toString().length(); 
     [...] 



     } 

     public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

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

} 

von this question genommen.

2

Here ist Ihre Antwort.

Verwenden Sie den Code und machen Sie die Sichtbarkeit der Schaltfläche für die Textänderung über die Zeichenlänge ein- und aus.

2

Schauen Sie sich unten Code, kann es Ihnen helfen:

EditText etSearch = (EditText) view.findViewById(R.id.etSearch); 

etSearch.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 
       String str = etSearch.getText().toString(); 
       if (str.isEmpty()) { 
        btnClear.setVisibility(View.INVISIBLE); 
       } else { 
        btnClear.setVisibility(View.VISIBLE); 
       } 
      } 

      @Override 
      public void afterTextChanged(Editable s) { 

      } 
     }); 
2

Text-Beobachter für Sie arbeiten kann

If(editText1.getText.toString.length>0) 
{ 
    if(button1.getVisibility == View.GONE) 
    { 
    button1.setVisibility(View.VISIBLE) 
    } 
} 
else 
{ 
if(button1.getVisibility == View.VISIBLE) 
    { 
    button1.setVisibility(View.GONE) 
    } 
}