2012-01-24 37 views
8

Trên ICS, khi sử dụng chủ đề dựa trên android:Theme.Light văn bản trong cửa sổ bật lên lỗi khi sử dụng setError(...) là màu trắng, làm nền.Làm cách nào để thay đổi màu văn bản của cửa sổ bật lên lỗi cho EditText?

Tôi có thể khắc phục sự cố này bằng cách thêm <item name="android:textColorPrimaryInverse">#ff000000</item> vào chủ đề của tôi. Trong khi điều này giúp tôi có một chút lo lắng rằng bằng cách thực hiện thay đổi đó một số văn bản khác, sử dụng textColorPrimaryInverse sẽ chuyển từ màu trắng sang màu đen và có thể không hiển thị. Tôi chỉ muốn thay đổi thuộc tính đó cho số EditText hiển thị cửa sổ bật lên bật được đề cập hoặc chỉ cho hoạt động đó.

Làm rõ

Tôi muốn thay đổi thuộc tính, tốt nhất là màu sắc văn bản, của sổ popup hiển thị các thông báo lỗi khi người dùng nhập vào một cái gì đó sai thành một EditText.

+0

nó sẽ còn tốt đẹp, nếu drawable nền của cửa sổ bật lên có thể thay đổi. Bạn không tìm thấy bất kỳ cách nào để thay đổi các thuộc tính này? – abbath

Trả lời

0

Sử dụng mã http://developer.android.com/reference/android/view/View.html#setBackgroundResource(int) hoặc http://developer.android.com/reference/android/view/View.html#setBackgroundColor(int). Chúng thuộc về View, nhưng EditText kế thừa chúng. Các methiod thứ hai là dễ dàng hơn, đầu tiên là nhiều nhất quán.

Chỉnh sửa: Ồ, đó là một câu hỏi khó hơn. Có thể, bằng cách sử dụng EditText.setError (lỗi CharSequence, biểu tượng Drawable), bạn có thể đặt văn bản lỗi trên biểu tượng? Bạn có thể đặt setBounds (Rect) cho biểu tượng, vì vậy, nó có thể đủ lớn. Biểu tượng có thể là màu bạn cần.

Nhưng tôi sử dụng onKey, beforeTextChanged, onTextChanged và hiển thị thông báo lỗi của riêng tôi làm Bánh mì nướng. Đối với bánh mì nướng, bạn có thể sử dụng Chế độ xem thông thường.

+0

Tôi đoán câu hỏi của tôi không rõ ràng. Tôi không cố gắng thay đổi nền của 'EditText' mà là màu văn bản của cửa sổ bật lên hiển thị lỗi. –

+0

Xin lỗi, sau đó xem phần bổ sung trong câu trả lời. – Gangnus

1

Bạn có thể làm điều đó như thế này:

editText.setError(Html.fromHtml("<font color='red'>Error Message!</font>")); 
Các vấn đề liên quan