Comment définir du texte dans un EditText

128

Comment puis-je définir le texte d'un EditText?

user555910
la source
8
Je veux définir du texte dans le texte d'édition est-il possible
user555910

Réponses:

244

Si vous consultez la documentation EditText, vous trouverez une setText()méthode. Il prend en a Stringet a TextView.BufferType. Par exemple:

EditText editText = (EditText)findViewById(R.id.edit_text);
editText.setText("Google is your friend.", TextView.BufferType.EDITABLE);

Il hérite également TextViewdes méthodes setText(CharSequence)et des setText(int)méthodes, vous pouvez donc le définir comme un standard TextView:

editText.setText("Hello world!");
editText.setText(R.string.hello_world);
Kevin Coppock
la source
6
EditText.BufferType.EDITABLE?
sll
3
Non, EditTexts'étend TextView; TextView.BufferType.EDITABLEest la constante correcte.
Kevin Coppock
4
Ce qui pourrait dérouter un débutant, c'est que setText prend en fait un CharSequence et un BufferType. Il est donc utile de se rappeler que les chaînes sont CharSequence
Avatar33
6
Pourquoi android.text.Editable existe-t-il ou, mieux encore, pourquoi les développeurs normaux sont-ils censés naviguer autour de lui au lieu d'EditText exposant une méthode vide setText (CharSequence)?
Marcelo Lacerda
3
@MarceloLacerda Il expose setText(CharSequence), de sa superclasse TextView. Je ne sais donc pas vraiment pourquoi est-ce la réponse la plus votée et la plus acceptée?
Hendy Irawan
21
String string="this is a text";
editText.setText(string)

J'ai trouvé que String était une sous-classe indirecte utile de CharSequence

http://developer.android.com/reference/android/widget/TextView.html rechercher setText (texte CharSequence)

http://developer.android.com/reference/java/lang/CharSequence.html

Earlcasper
la source
Notez que toutes les chaînes sont des CharSequences, donc celle-ci fonctionne, mais une CharSequence brute n'est pas une chaîne. Si vous avez une CharSequence brute et EXIGEZ une String, vous devez appeler myCharSequence.toString () pour obtenir la String officielle. Pas besoin de savoir pour CETTE application, mais parfois ailleurs, cela est nécessaire.
DragonLord
6
String text = "Example";
EditText edtText = (EditText) findViewById(R.id.edtText);
edtText.setText(text);

Vérifiez-le EditTextaccepter uniquement les valeurs de chaîne si nécessaire, convertissez-le en chaîne.

Si int, double, valeur longue, faites:

String.value(value);
Samrat Das Choudhury
la source
3

Utilisez +, l'opérateur de concaténation de chaînes:

 ed = (EditText) findViewById (R.id.box);
    int x = 10;
    ed.setText(""+x);

Ou utiliser

String.valueOf(int):
ed.setText(String.valueOf(x));

Ou utiliser

Integer.toString(int):
ed.setText(Integer.toString(x));
Rajesh Wadhwa
la source
3

C'est la solution à Kotlin

val editText: EditText = findViewById(R.id.main_et_name)
    editText.setText("This is a text.")
Aarón Lucker
la source
2

Vous pouvez définir android:text="your text";

<EditText
    android:id="@+id/editTextName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/intro_name"/>
Cabezas
la source
1

Tu dois:

  1. Déclarez le EditText in the xml file
  2. Trouvez le EditTextdans l'activité
  3. Définissez le texte dans le EditText
user1695144
la source
1

Solution sous Android Java:

  1. Démarrez votre EditText, l'ID est venu à votre id xml.

    EditText myText = (EditText)findViewById(R.id.my_text_id);
  2. dans votre méthode OnCreate, définissez simplement le texte par le nom défini.

    String text = "here put the text that you want"
  3. utilisez la méthode setText de votre editText.

    myText.setText(text); //variable from point 2
Vinicius Mesquita
la source
0

Si vous souhaitez définir du texte au moment de la conception dans le xmlfichier, android:text="username"ajoutez simplement cette propriété.

<EditText
    android:id="@+id/edtUsername"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="username"/>

Si vous souhaitez définir du texte par programmation en Java

EditText edtUsername = findViewById(R.id.edtUsername);
edtUsername.setText("username");

et kotlincomme java en utilisant getter / setter

edtUsername.setText("username")

Mais si vous voulez utiliser le .textprincipe alors

edtUsername.text = Editable.Factory.getInstance().newEditable("username")

à cause de EditText.textnécessite une editablepremière place pasString

Dinesh
la source