2010-06-22 25 views
5

tôi xác định một chỉnh sửa văn bản như vậy ...Android EditText câu hỏi, thay thế bàn phím nhập với done

<EditText 
android:id="@+id/user" 
android:layout_width="200px" 
android:layout_height="wrap_content" 
android:text="Username" 
android:textSize="18sp" 
android:gravity="center" 
android:layout_x="64px" 
android:layout_y="140px" 
> 

Tôi muốn thay thế "enter" nút xuất hiện trên bàn phím tự động, với một nút được thực hiện sẽ chỉ đóng bàn phím khi người dùng truy cập vào nó. Tôi đã thấy điều này được thực hiện trên một vài ứng dụng (ví dụ: ứng dụng twitter của Nexus One) và muốn thực hiện điều gì đó tương tự. có ai biết làm thế nào?

Cũng có thể nhận được văn bản xuất hiện theo mặc định để tự động xóa khi người dùng nhấp để chỉnh sửa hộp văn bản? Cảm ơn,

Trả lời

11

Giải pháp đơn giản: thêm android:singleLine="true" cho EditText. Điều này sẽ thay thế việc nhập với Tiếp theo (đối với tất cả các bản chỉnh sửa ngoại trừ phần cuối cùng) và Xong (cho lần cuối).

+0

đã hoạt động! cảm ơn! một điều nữa, làm cách nào để tắt từ điển? – Skizit

+3

sử dụng 'android: inputType =" textNoSuggestions "' – cristis

+3

btw, bạn có thể đặt hành động tùy chỉnh thay vì hành động tùy chỉnh (tiếp theo/thực hiện) bằng 'android: imeOptions' – cristis

2

Về câu hỏi khác của bạn, nhận văn bản để tự động xóa, bạn nên đưa văn bản vào android:hint thay vì android:text.

+0

datz một quan sát tốt nhưng không câu trả lời :) +1 –

3

Chỉ cần thêm trong XML EditText: android:imeOptions="actionDone"

1
android:imeOptions="actionNext" 

Nó thay thế tên của khóa nhập với "Next" trong bàn phím ảo và bằng cách nhấp vào nó - tập trung nhảy đến trường tiếp theo

trong cách bố trí của bạn, bạn sẽ làm những việc như thế này

<EditText 
    ... 
    android:text="Field 1" 
    android:imeOptions="actionNext" /> 
<EditText 
    ... 
    android:text="Field 2" 
    android:imeOptions="actionNext" /> 

Và trong Java

TextView field2 = (TextView) field1.focusSearch(View.FOCUS_RIGHT); 
field2.requestFocus(); 

Tùy bạn quyết định trường nào sẽ yêu cầu tiêu điểm tiếp theo.

2

Dưới đây là một câu trả lời Cập nhật:

android:maxLines="1" 

Câu trả lời được chấp nhận của android:singleLine="true" đã bị phản đối.

Các vấn đề liên quan