2012-09-21 96 views
5


我在爲Spinner設置文本顏色時遇到問題。我看過幾個例子,但是大多數的數組都是從strings.xml開始的res folder的ArrayAdapter和String數組,因爲我的Spinner的項目是從SQLite數據庫中檢索的,所以我認爲它可能沒有幫助。
如何在Spinner中設置項目的文本顏色Android

這裏是我的微調的代碼PersonalInformation.java

public class PersonalInformation extends Activity 
{ 
    EditText txtLikes, txtDislikes, txtType, txtDate; 
    Button btnView, btnBack; 
    Spinner nameSpinner;  

    final Context context = this; 

    private int namesSpinnerId;   

    LikesDBAdapter likeDB = new LikesDBAdapter(this); 
    DislikesDBAdapter dlikeDB = new DislikesDBAdapter(this); 


    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.info); 

     BuddyDBAdapter buddyDB = new BuddyDBAdapter(this); 
     buddyDB.open(); 

     Cursor friendsCursor = buddyDB.getAllNames(); 
     startManagingCursor(friendsCursor); 

     String[] from = new String[]{BuddyDBAdapter.KEY_NAME}; 
     int[] to = new int[]{R.id.name}; 

     SimpleCursorAdapter friendsCursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, friendsCursor, from, to); 
     friendsCursorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     nameSpinner = (Spinner)findViewById(R.id.nameSpinner); 
     nameSpinner.setAdapter(friendsCursorAdapter); 
     //buddyDB.close(); 


     nameSpinner.setOnItemSelectedListener(new OnItemSelectedListener() 
      { 
       @Override 
       public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
       { 
        Cursor c = (Cursor)parent.getItemAtPosition(pos); 
        namesSpinnerId = c.getInt(c.getColumnIndexOrThrow(BuddyDBAdapter.KEY_ROWID)); 
       } 

       @Override 
       public void onNothingSelected(AdapterView<?> parent) 
       { 
        // TODO Auto-generated method stub 

       } 
      }); 
     buddyDB.close(); 

而且,這些都是info.xml微調的佈局代碼

<Spinner 
     style="@style/SpinnerStyle" 
     android:id="@+id/nameSpinner"   
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:prompt="@string/friends_prompt" 
     android:textColor="@color/green" /> 

請如何設置項目中的文字顏色幫我微調。
我會感謝您提供的任何幫助。謝謝。! =)

+1

請檢查這個鏈接。 http://stackoverflow.com/a/6661762/614807 –

回答

9

爲您的微調項目創建一個xml文件。並放在佈局文件夾中

spinner_view.xml: 


<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:textColor="@color/green"   
/> 

最後在你的代碼中。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_view,yourList); 
+1

你的答案也幫助了我。 Thanksss =) – Preeyah

+0

仍然沒有顏色變化.. :( –

0

修改文字顏色創建您的RES一個新的XML文件/佈局文件夾

<TextView android:id="@+id/spinnerText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:textColor="#2f4f4f" 
    android:textSize="20dp" 
    xmlns:android="http://schemas.android.com/apk/res/android"/> 

,並呼籲類似的適配器是這樣的:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
       R.array.spinner_array, 
       R.layout.spinner_text); 
0

這是simple_spinner_drowdown_item.xml的源代碼

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
/* //device/apps/common/assets/res/any/layout/simple_spinner_item.xml 
** 
** Copyright 2008, The Android Open Source Project 
** 
** Licensed under the Apache License, Version 2.0 (the "License"); 
** you may not use this file except in compliance with the License. 
** You may obtain a copy of the License at 
** 
**  http://www.apache.org/licenses/LICENSE-2.0 
** 
** Unless required by applicable law or agreed to in writing, software 
** distributed under the License is distributed on an "AS IS" BASIS, 
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
** See the License for the specific language governing permissions and 
** limitations under the License. 
*/ 
--> 
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:singleLine="true" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/dropdownListPreferredItemHeight" 
    android:ellipsize="marquee" 
    android:textAlignment="inherit"/> 

這裏的問題是安卓:?ATTR/dropdownListPreferredItemHeight是不公開的,但現在看來,這是48浸或64dip: https://android.googlesource.com/platform/frameworks/base/+/414c4984fdbb03b688bb5c3c76d20100fce3d067%5E1..414c4984fdbb03b688bb5c3c76d20100fce3d067/

相關問題