Cách đặt văn bản trong chỉnh sửa


Câu trả lời:


244

Nếu bạn kiểm tra tài liệu cho EditText, bạn sẽ tìm thấy một setText()phương pháp. Nó mất trong một Stringvà một TextView.BufferType. Ví dụ:

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

Nó cũng kế thừa TextViewcác phương thức setText(CharSequence)setText(int)phương thức, vì vậy bạn có thể đặt nó giống như thông thường TextView:

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

6
EditText.BufferType.EDITABLE?
sll

3
Không, EditTextkéo dài TextView; TextView.BufferType.EDITABLElà hằng số đúng.
Kevin Coppock

4
Điều có thể gây nhầm lẫn cho một người mới là setText thực sự cần CharSequence và BufferType. Vì vậy, thật hữu ích khi nhớ rằng Chuỗi là CharSequence's
Avatar33

6
Tại sao android.text.Editable tồn tại hoặc tốt hơn, tại sao các nhà phát triển bình thường phải điều hướng xung quanh nó thay vì EditText để lộ phương thức void setText (CharSequence)?
Marcelo Lacerda

3
@MarceloLacerda Nó lộ ra setText(CharSequence), từ siêu lớp của nó TextView. Vì vậy, tôi không thực sự chắc chắn tại sao đây là câu trả lời được tán thành và chấp nhận nhất?
Hendy I Girls

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

Tôi đã tìm thấy String là một lớp con gián tiếp hữu ích của CharSequence

http://developer.android.com/reference/android/widget/TextView.html tìm setText (văn bản CharSequence)

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


Lưu ý tất cả các Chuỗi là CharSequences, vì vậy chuỗi này hoạt động, nhưng CharSequence thô không phải là Chuỗi. Nếu bạn có CharSequence thô và YÊU CẦU một Chuỗi, bạn cần gọi myCharSequence.toString () để lấy Chuỗi chính thức. Không cần biết cho ứng dụng NÀY, nhưng đôi khi ở nơi khác điều này là cần thiết.
DragonLord

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

Kiểm tra xem nó EditTextchỉ chấp nhận các giá trị Chuỗi nếu cần thiết chuyển đổi nó thành chuỗi.

Nếu int, double, value value, do:

String.value(value);

3

Sử dụng +, toán tử nối chuỗi:

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

hoặc dùng

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

hoặc dùng

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

3

Đây là giải pháp trong Kotlin

val editText: EditText = findViewById(R.id.main_et_name)
    editText.setText("This is a text.")

2

Bạn có thể thiết lập 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

Bạn cần phải:

  1. Khai báo EditText in the xml file
  2. Tìm EditTexttrong hoạt động
  3. Đặt văn bản trong EditText

1

Giải pháp trong Android Java:

  1. Bắt đầu EditText của bạn, ID được chuyển đến id xml của bạn.

    EditText myText = (EditText)findViewById(R.id.my_text_id);
  2. trong Phương thức OnCreate của bạn, chỉ cần đặt văn bản theo tên được xác định.

    String text = "here put the text that you want"
  3. sử dụng phương thức setText từ editText của bạn.

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

0

Nếu bạn muốn đặt văn bản tại thời điểm thiết kế trong xmltệp, chỉ cần android:text="username"thêm thuộc tính này.

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

Nếu bạn muốn đặt văn bản theo chương trình trong Java

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

kotlingiống như java sử dụng getter / setter

edtUsername.setText("username")

Nhưng nếu bạn muốn sử dụng .texttừ nguyên tắc thì

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

bởi vì EditText.textyêu cầu một editablelúc đầu khôngString

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.