2013-05-03 31 views
24

Văn bản trên máy quay của tôi có màu trắng và tôi không biết tại sao.Văn bản trên spinner có màu trắng trên nền trắng

enter image description here

Đây là xml của tôi, không có gì đặc biệt

<Spinner 
    android:id="@+id/spinner_date" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" /> 

Và mã của tôi

dateSpinner = (Spinner) findViewById(R.id.spinner_date); 
selectedDate = calendar.getTime(); 
List<String> list = new ArrayList<String>(); 
list.add(formatter.format(selectedDate)); 
dateAdapter = new ArrayAdapter<String>(mContext, 
      android.R.layout.simple_spinner_item, list); 
dateSpinner.setAdapter(dateAdapter); 

gì có thể là lý do mà văn bản của tôi được hiển thị trong trắng?

EDIT: Tôi đã tìm thấy lý do, tôi đã thay thế tham số mContext được đặt trong onCreate của tôi.

mContext = getApplicationContext(); 

Bây giờ tôi sử dụng d

ateAdapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, list); 

và nó hoạt động.

+2

Ugh, tôi đã cùng một vấn đề, và đó là vì ai đó đã 'ArrayAdapter.createFromResource (\t \t \t this.getActivity(). GetApplicationContext(), \t \t \t R.array.security_questions, \t \t \t android.R.layout.simple_spinner_item) 'thay vì' ArrayAdapter.createFromResource (\t \t \t this.getActivity(), \t \t \t R.array.security_questions, \t \t \t android.R.layout.simple_spinner_item) ' GetApplicationContext() chắc chắn đã làm chúng ta khó chịu, ứng dụng phải có chủ đề khác với hoạt động? – Jeff

+0

Cảm ơn bạn rất nhiều! Sau một thời gian dài tôi tìm thấy bài viết của bạn và có thể giải quyết vấn đề của tôi. – Antiohia

Trả lời

84

Tôi có cùng một vấn đề và đã tìm thấy câu trả lời. Bạn không sử dụng bối cảnh ứng dụng, thay vào đó, chỉ cần sử dụng getActivity() (nếu bạn đang ở trong đoạn) hoặc đây (nếu bạn đang ở trong hoạt động), nó sẽ làm việc

dateAdapter = new ArrayAdapter<String>(**this**, 
     android.R.layout.simple_spinner_item, list); 
+0

Tôi đang sử dụng 'SimpleCursorAdapter' nhưng điều này không khắc phục được sự cố của tôi. Bất kỳ ý tưởng? – AdamMc331

+0

giải pháp tuyệt vời –

+0

@Le Hung bạn là đúng khi chúng tôi sử dụng này thay vì bối cảnh getApplication nó trông thực sự tốt đẹp. Nhưng khi chúng tôi sử dụng getApplicationContext mọi thứ đang tìm kiếm vi tai. Cảm ơn người đàn ông. –

1

Có thể bạn có một android:textColor="@android:color/white" thuộc tính trắng trong bạn simple_spinner_item.xml trong bố trí thư mục của dự án của bạn.

Sử dụng tốt hơn bố cục mặt hàng spinner tùy chỉnh có thuộc tính tốt android:textColor="@android:color/COLOR_YOU_WANT_TO_USE".

+1

simple_spinner_item đến từ android, không phải từ dự án ... Tôi không chắc nó có thể chỉnh sửa được không? – Jeff

1

Tôi cũng có cùng một vấn đề đó là do chủ đề ứng dụng của tôi . Mà tôi giải quyết bằng cách thay thế

android.R.layout.simple_spinner_item 

với

android.R.layout.simple_list_item_1 

trong ArrayAdapter tôi. Tôi hy vọng điều này có thể giải quyết vấn đề của bạn

1

tôi thay đổi nó từ

new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, some_list); 

để mới ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);

nó cố định, mặc dù tôi không muốn sử dụng "này"

9

tôi giải quyết vấn đề này sử dụng

getBaseContext() 

thay vì

getApplicationContext() 
+0

getBaseContext() giải quyết vấn đề của tôi –

+0

vâng tôi đã sử dụng ArrayAdapter bên trong lớp AsyncTask mở rộng..và có cùng một vấn đề ... getBaseContext() làm việc cho tôi .. –

+0

Điều này giải quyết được vấn đề của tôi –