Android thêm văn bản giữ chỗ vào EditText


365

Làm cách nào tôi có thể thêm văn bản giữ chỗEditText vào lớp không có trong XML?

Tôi có EditTextđoạn mã sau sẽ được hiển thị trong alertdialog:

    final EditText name = new EditText(this);

1
Bạn có ý nghĩa gì bởi một người giữ chỗ?
LuxuryMode

4
Đó là văn bản được viết bằng màu sáng trên các thanh văn bản và khi người dùng nhấp vào thanh văn bản để viết một cái gì đó thì văn bản sẽ biến mất.
Mona

Câu trả lời:


831

À, được rồi Những gì bạn đang tìm kiếm là setHint(int). Chỉ cần chuyển vào id tài nguyên của một chuỗi từ xml của bạn và bạn sẽ ổn.

nhập mô tả hình ảnh ở đây

BIÊN TẬP

Và trong XML, nó đơn giản android:hint="someText"


6
Cảm ơn! Tôi không biết họ gọi nó là gì trong Android, tôi chỉ biết rằng trên iOS nó được gọi là giữ chỗ.
Mona

39
Nó được biết đến rộng rãi như là một trình giữ chỗ, nhưng tất nhiên Android chỉ khác là khác biệt;)
Joe Maher

21

android:hint="text" cung cấp thông tin cho người dùng rằng những gì anh ta cần điền cụ thể editText

ví dụ: - tôi có hai edittext một cho giá trị số và một cho giá trị chuỗi. chúng ta có thể đặt gợi ý cho người dùng để anh ta có thể hiểu rằng anh ta cần cung cấp giá trị gì

android:hint="Please enter phone number"
android:hint="Enter name" 

Sau khi chạy ứng dụng, hai edittext này sẽ hiển thị gợi ý đã nhập, sau khi nhấp vào chỉnh sửa văn bản, nó sẽ xuất hiện và người dùng có thể nhập những gì mình muốn (xem hình ảnh luxurymode)


Điều này được gọi là gợi ý trong Android.
Monty

11

Trong hoạt động của bạn

<EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:background="@null"
                android:hint="Text Example"
                android:padding="5dp"
                android:singleLine="true"
                android:id="@+id/name"
                android:textColor="@color/magenta"/>

nhập mô tả hình ảnh ở đây


7

Đây là cách tạo mật khẩu đầu vào có gợi ý không được chuyển đổi thành * !!.

Trên XML:

android:inputType="textPassword"
android:gravity="center"
android:ellipsize="start"
android:hint="Input Password !."

cảm ơn: xoài và rjrjr cho cái nhìn sâu sắc: D.


5

Trong Android Studio, bạn có thể thêm Gợi ý (Trình giữ chỗ) thông qua GUI. Đầu tiên chọn trường EditText trên giao diện người thiết kế. Sau đó bấm vào Cây thành phần Phía bên trái của IDE (Thông thường nó ở đó, nhưng nó có thể được thu nhỏ ở đó) Ở đó bạn có thể thấy Thuộc tính của EditText được chọn. Tìm trường Gợi ý như bên dưới Hình ảnh

nhập mô tả hình ảnh ở đây

Ở đó bạn có thể thêm Gợi ý (Giữ chỗ) vào EditText


3

Nếu bạn có nghĩa là vị trí mà bạn sẽ thêm nó trong bố trí. Bạn có thể định nghĩa một thùng chứa như FrameLayout và thêm EditText này vào nó khi nó được tạo.

<LinearLayout xmlns=".."/>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/container" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

FrameLayout layout = (FrameLayout) findViewById(R.id.container);
layout.addView(name);

1

Bạn phải sử dụng thuộc tính android: gợi ý

<EditText
android:id="@+id/message"
android:hint="<<Your placeholder>>"
/>

Trong Android Studio, bạn có thể chuyển từ XML -> Design View và nhấp vào Thành phần trong bố cục, trường EditText trong trường hợp này. Điều này sẽ hiển thị tất cả các thuộc tính áp dụng cho thành phần GUI đó. Điều này sẽ hữu ích khi bạn không biết về tất cả các thuộc tính có ở đó.

Bạn sẽ ngạc nhiên khi thấy rằng EditText có hơn 140 thuộc tính để tùy chỉnh.


0

Nếu bạn muốn chèn văn bản vào trong chế độ xem Chỉnh sửa của bạn vẫn ở đó sau khi trường được chọn (không giống như cách hoạt động của gợi ý), hãy làm điều này:

Trong Java:

// Cast Your EditText as a TextView
((TextView) findViewById(R.id.email)).setText("your Text")

Trong Kotlin:

// Cast your EditText into a TextView
// Like this
(findViewById(R.id.email) as TextView).text = "Your Text"
// Or simply like this
findViewById<TextView>(R.id.email).text = "Your Text"
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.