Así que tengo un Android programa así:

package com.example.androiddemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

public class AndroidDemo extends Activity {
    String[] messages = {"Short Text",
                         "I want to show some really long text" +
                         "on the display of the phone. " +
                         "Having run out of ideas on what to type, " +
                         "I am adding this text which makes absolutely " +
                         "no sense."};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final Button add = (Button) findViewById(R.id.addBtn);
        final Button clear = (Button) findViewById(R.id.clrBtn);
        final EditText text = (EditText) findViewById(R.id.display);

        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(v == add){
                    text.setText(messages[new java.util.Random().nextInt(messages.length)]);
                }else if(v == clear){
                    text.setText("");
                }
            }
        });
    }
}  

El botón para añadir el texto a la TextView funciona perfectamente bien sin embargo, el texto nunca se borra.

Mi creencia es que la operación de TextView sería análogo a la JTextField o JTextArea donde se ajuste el texto a "" lo borra.

¿Cómo puedo borrar el texto?

Trate de no mezclar TextView y EditText. Un EditText es análoga a la JTextField/JTextArea, y TextView con JLabel (y el equivalente más grande que no es editable por el usuario cuadro)
Gracias por mencionar que !! 🙂

OriginalEl autor Little Child | 2013-07-04

4 Comentarios

  1. 11

    Probar este,

    public class AndroidDemo extends Activity implements OnClickListener{
    Button add, clear;
    EditText text;
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            add = (Button) findViewById(R.id.addBtn);
            clear = (Button) findViewById(R.id.clrBtn);
            text = (EditText) findViewById(R.id.display);
            add.setOnClickListener(this);
            clear.setOnClickListener(this);
            }
    @Override
    public void onClick(View v){
        if(v == add){
            text.setText(messages[new java.util.Random().nextInt(messages.length)]);
        }else if(v == clear){
            text.setText("");
        }
        }
      }
    hmm.. es una buena práctica hacer una Activity un oyente o debo hacer una clase de mi cuenta y hacer un oyente ? 🙂
    sí, Mediante la creación de la clase de su propio también de la práctica

    OriginalEl autor No_Rulz

  2. 3

    Sí lo es. Su problema está relacionado con el onClickListener.

     add.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(v == add){
                        text.setText(messages[new java.util.Random().nextInt(messages.length)]);
                    }else if(v == clear){
                        text.setText("");
                    }
                }
            });

    en este caso if(v == clear) es siempre falso. Usted tiene que registrar un View.OnClickListener() para la clear vista/botón, o realizar su Actividad implementa View.OnClickListener y juego para el botón this como setOnClickListener

    Puede haber una generalizada de escucha que se encarga de todos los 2 botones ?
    sí, yo ya señalo en mi respuesta. Usted puede hacer una clase que implementa la Vista.OnClickLister y utilizar la misma instancia para los dos botones

    OriginalEl autor Blackbelt

  3. 3

    Para responder a su pregunta, yo uso en mis aplicaciones, en lugar de ajustar el texto a (""), se aclara que el uso de la getText().clear(); método. Personalmente, yo uso este porque se ve más profesional y hace buen uso de el comando clear en android.

    clearButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        editText.getText().clear();
                    }
                });

    Para aclarar, esto funciona con EditText, Con un TextView, acaba de hacer textview.setText(«»);

    No ver la clara función de como se describen aquí.
    Funciona muy bien para mí. Son usted seguro de que es una edición de texto?
    Mi mal. Es un TextView. Gracias @Avi
    Por lo que sólo funciona con la edición de texto. ¿Te importa que la eliminación de la downvote?

    OriginalEl autor Avi Parshan

  4. 1

    Va mal con su método onClick. Usted está agregando de 1 botón y, a continuación, comprobar que el botón es. Nunca va a ser su botón «limpiar», ya que sólo se escucha el botón ‘añadir’ onclick.

    Es posible que tenga un oyente que puede manejar todos los botones mediante if-elseif ladder ??
    sí, su Actividad podría ser este general oyente (ver No_Rulz la respuesta), Pero usted todavía necesita agregar a cada botón.
    Sí, echa un vistazo No_Rulz su respuesta. Usted realizar su Actividad de extender OnClickListener (tenga cuidado de no importar el Diálogo, sino a la Vista!) que le dará 1 general método onClick. Usted puede suscribirse a todos los botones con algo como un botón.setOnClickListener(this) a continuación. En el método onClick, switch/case.
    Seguro. así puedo definir un onClick(View v) en el Actiity y agregar a todos los botones. A continuación, puede manejar tanto de ellos ? 🙂
    O agregar android:onClick a su botón xml

    OriginalEl autor Stefan de Bruijn

Dejar respuesta

Please enter your comment!
Please enter your name here