2016-05-20 11 views
-1
  1. Nach der Erklärung und die Schaffung des textWatcher Objekts zu erzeugen, würde Ich mag die Sendetaste deaktivieren, und legen Sie es leer, wenn der chatText (Text bearbeiten) bis grau
  2. ist

    Ich denke, es ist ein Problem der Rangliste. Bitte helfen Sie.eine Chat-Aktivität in android

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_chat); 
    
        list = (ListView)findViewById(R.id.listView); 
        list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 
        chatText = (EditText)findViewById(R.id.editText); 
        //chatText.setOnKeyListener(this); 
    
        me = true; 
        send = (Button)findViewById(R.id.button); 
        change = (Button)findViewById(R.id.button2); 
    
    
    
        list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 
    
        adp = new TheAdapter(getApplicationContext(),R.layout.chat); 
    
        list.setAdapter(adp); 
    
        chatText.addTextChangedListener(textWatcher); 
        checkFieldsForEmptyValues(); 
    
    
        send.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          envoyer(); 
         } 
    
        }); 
    
        change.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          me = !me; 
          if (!me) { 
           change.setText(R.string.sender2); 
          } else { 
           change.setText(R.string.sender); 
          } 
         } 
        }); 
    } 
    
    
    
    
    
    public void envoyer(){ 
    
        adp.add(new messages(me, chatText.getText().toString())); 
        chatText.setText(""); 
    } 
    
    private void checkFieldsForEmptyValues(){ 
    
        String s1 = chatText.getText().toString(); 
    
        if (s1.length() < 0) { 
         send.setEnabled(false); 
        } else { 
         send.setEnabled(true); 
         send.setBackgroundColor(Color.BLUE); 
         //send.setBackgroundColor((getResources().getColor(R.color.blue))); 
        } 
    
    } 
    
+1

Format Code helfen. Und geben Sie Ihre Frage an – Ilya

Antwort

0

Im onTextChanged ist, wo Sie würde überprüfen, um zu sehen, ob das Textfeld leer ist:

chatText.addTextChangedListener(new TextWatcher() { 
@Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      if (s.length() > 0) { //enable} 
      else if (s.length() == 0 { //disable } 

In Ihrem Code

Sie if (s1.length() < 0), die ich glaube nicht, jemals sein wird true, weil die Textgröße niemals kleiner als 0 sein wird.

0
// Disable on init 
    send.setEnabled(false); 

    // add text changer 
    chatText.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) { 
      // Enable when input is != null and not empty. You can check string lenght too 
      send.setEnabled(s != null && !s.toString().isEmpty()); 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 

     } 
    }); 

Schaltfläche deaktivieren vor und tex hinzufügen twatch. Sie können auch prüfen, ob der Wert für editedtext nicht leer ist oder die Länge der Zeichenfolge überprüfen.

Ich hoffe, es wird Ihnen richtig

+0

es ist Arbeit vielen Dank :) – Constantine

Verwandte Themen