วิธีการตั้งค่าข้อความใน EditText


คำตอบ:


244

หากคุณตรวจสอบเอกสารEditTextคุณจะพบsetText()วิธีการ ใช้เวลาใน a Stringและ a TextView.BufferType. ตัวอย่างเช่น:

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

นอกจากนี้ยังสืบทอดTextViews' setText(CharSequence)และsetText(int)วิธีการเพื่อให้คุณสามารถตั้งค่ามันก็เหมือนปกติTextView:

editText.setText("Hello world!");
editText.setText(R.string.hello_world);

6
EditText.BufferType.EDITABLE?
sll

3
ไม่EditTextขยายTextView; TextView.BufferType.EDITABLEคือค่าคงที่ที่ถูกต้อง
Kevin Coppock

4
สิ่งที่อาจทำให้มือใหม่สับสนคือ setText ใช้ CharSequence และ BufferType ดังนั้นจึงมีประโยชน์ที่จะต้องจำไว้ว่า Strings เป็นของ CharSequence
Avatar33

6
เหตุใด android.text.Editable จึงมีอยู่หรือที่ดีกว่าทำไมนักพัฒนาทั่วไปจึงควรนำทางไปรอบ ๆ แทนที่จะเป็น EditText ที่เปิดเผยวิธี void setText (CharSequence)
Marcelo Lacerda

3
@MarceloLacerda มันไม่เปิดเผยsetText(CharSequence)จาก TextViewsuperclass ดังนั้นฉันไม่แน่ใจจริงๆว่าทำไมคำตอบนี้ถึงได้รับการโหวตและยอมรับมากที่สุด
Hendy Irawan

21
String string="this is a text";
editText.setText(string)

ฉันพบว่า String เป็นคลาสย่อยทางอ้อมที่มีประโยชน์ของ CharSequence

http://developer.android.com/reference/android/widget/TextView.html ค้นหา setText (ข้อความ CharSequence)

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


โปรดทราบว่าสตริงทั้งหมดเป็น CharSequences ดังนั้นอันนี้ใช้งานได้ แต่ CharSequence แบบดิบไม่ใช่ String หากคุณมี CharSequence แบบดิบและต้องมี String คุณต้องเรียก myCharSequence.toString () เพื่อรับ String อย่างเป็นทางการ ไม่จำเป็นต้องรู้สำหรับแอปพลิเคชันนี้ แต่บางครั้งก็จำเป็นในที่อื่น
DragonLord

6
String text = "Example";
EditText edtText = (EditText) findViewById(R.id.edtText);
edtText.setText(text);

ตรวจสอบEditTextยอมรับเฉพาะค่า String หากจำเป็นให้แปลงเป็นสตริง

ถ้า int, double, long value ให้ทำ:

String.value(value);

3

ใช้ + ตัวดำเนินการต่อสตริง:

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

หรือใช้

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

หรือใช้

Integer.toString(int):
ed.setText(Integer.toString(x));


2

คุณสามารถตั้งค่าandroid:text="your text";

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


1

คุณต้อง:

  1. ประกาศ EditText in the xml file
  2. ค้นหาEditTextในกิจกรรม
  3. ตั้งค่าข้อความในไฟล์ EditText

1

โซลูชันใน Android Java:

  1. เริ่ม EditText ของคุณ ID จะมาที่รหัส xml ของคุณ

    EditText myText = (EditText)findViewById(R.id.my_text_id);
  2. ในวิธีการ OnCreate ของคุณเพียงแค่ตั้งค่าข้อความตามชื่อที่กำหนด

    String text = "here put the text that you want"
  3. ใช้เมธอด setText จาก editText ของคุณ

    myText.setText(text); //variable from point 2

0

หากคุณต้องการตั้งค่าข้อความในเวลาออกแบบในxmlไฟล์เพียงแค่android:text="username"เพิ่มคุณสมบัตินี้

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

หากคุณต้องการตั้งค่าข้อความโดยทางโปรแกรมใน Java

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

และkotlinเช่นเดียวกับ java โดยใช้ getter / setter

edtUsername.setText("username")

แต่ถ้าคุณต้องการใช้.textจากหลักการแล้ว

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

เพราะEditText.textต้องมีeditableที่แรกไม่ใช่String

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.