Comment faire pour effacer le texte dans TextView Android?
Donc j'ai un Android programme comme suit:
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("");
}
}
});
}
}
Le bouton pour ajouter du texte à la TextView
fonctionne parfaitement bien mais le texte ne jamais s'efface.
Ma conviction est que l'opération de TextView
serait analogue à JTextField
ou JTextArea
où le paramètre le texte à ""
efface.
Comment faire pour effacer le texte?
Essayez de ne pas mélanger jusqu'
Merci pour la mention !! 🙂
TextView
et EditText
. Un EditText
est analogue à JTextField
/JTextArea
, et TextView
avec JLabel
(et l'équivalent de la plus grande non-modifiable par l'utilisateur de la boîte)Merci pour la mention !! 🙂
OriginalL'auteur Little Child | 2013-07-04
Vous devez vous connecter pour publier un commentaire.
Essayer cela,
Activity
un auditeur ou doit-je faire une classe de mon propre et d'en faire un auditeur ? 🙂oui, Par la création de la classe de votre propre aussi bien pratique
OriginalL'auteur No_Rulz
Oui, il est. Votre problème est lié à la onClickListener.
dans ce cas
if(v == clear)
est toujours faux. Vous devez enregistrer unView.OnClickListener()
pour laclear
vue/bouton, ou faire votre Activité met en œuvreView.OnClickListener
et pour le boutonthis
commesetOnClickListener
oui j'ai déjà remarquer dans ma réponse. Vous pouvez faire une classe qui implémente la Vue.OnClickLister et utiliser la même instance pour les deux boutons
OriginalL'auteur Blackbelt
Pour répondre à votre question, j'utilise dans mes applications, au lieu de définir le texte à
("")
, il efface à l'aide de lagetText().clear();
méthode. Personnellement, j'utilise ce parce qu'il a l'air plus professionnel et rend l'utilisation de la commande clear android.À préciser, cela fonctionne avec EditText, Avec un TextView, il suffit de faire textview.setText("");
Il fonctionne très bien pour moi. Êtes-vous sûr que c'est un texte à modifier?
Mon mauvais. C'est un TextView. Merci @Avi
Donc, il ne fonctionne qu'avec modifier le texte. Avez-vous l'esprit de retirer le downvote?
OriginalL'auteur Avi Parshan
Vous êtes ne va pas avec votre méthode onClick. Vous êtes à l'ajouter à 1 bouton, puis en cochant le bouton sur lequel il est. Il n'est jamais va être votre bouton 'effacer', étant donné qu'il est à l'écoute de votre bouton "ajouter" onclick.
if-elseif ladder
??oui, votre Activité peut être ce général et l'auditeur (voir No_Rulz de réponse), Mais vous avez encore besoin de l'ajouter à chaque bouton.
Oui, découvrez No_Rulz sa réponse. Vous faites votre Activité étendre OnClickListener (attention de ne pas importer de la boîte de Dialogue, mais le point de Vue!) qui vous donnera 1 général onClick méthode. Vous pouvez vous abonner à tous vos boutons avec quelque chose comme le bouton.setOnClickListener(this) ensuite. Dans le onClick méthode, il suffit de passer/cas.
Assurez-vous. donc, je peux définir une
onClick(View v)
dans leActiity
et l'ajouter à tous les boutons. Alors qu'il peut gérer les deux ? 🙂Ou ajouter
android:onClick
à votre bouton xmlOriginalL'auteur Stefan de Bruijn