2012-09-21 6 views
5


Ich habe Probleme mit der Einstellung der Textfarbe für den Spinner. Ich habe einige Beispiele gesehen, aber die meisten haben ArrayAdapter und String-Array von strings.xml in res folder als meine Spinner-Elemente aus SQLite-Datenbank abgerufen werden, so dass ich denke, es kann nicht helfen.
Wie setze ich die Textfarbe der Elemente in Spinner Android

Hier sind meine Spinner Codes 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(); 

Und diese Layout-Codes Spinner sind in 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" /> 

Bitte mir helfen mit, wie Sie den Artikel Textfarbe einzustellen, in Spinner.
Ich freue mich über jede Hilfe zur Verfügung gestellt. Vielen Dank.! =)

+1

Bitte Überprüfen Sie diesen Link. http://stackoverflow.com/a/6661762/614807 –

Antwort

9

Erstellen Sie eine XML-Datei für Ihre Spinner-Artikel. und legen Sie es in Layout-Ordner

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"   
/> 

und schließlich in Ihrem Code.

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

Ihre Antwort hat mir auch geholfen. Thanksss =) – Preeyah

+0

Noch keine Farbänderung .. :( –

0

ändern die Textfarbe eine neue XML-Datei in Ihrem res/Layout-Ordner dieses

<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"/> 

und rufen ähnliche Adapter erstellen mögen:

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

Dies ist der Quellcode von 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"/> 

Das Problem hier ist android: attr/dropdownListPreferredItemHeight nicht öffentlich ist, aber es scheint, es 48 Tauch- oder 64dip ist: https://android.googlesource.com/platform/frameworks/base/+/414c4984fdbb03b688bb5c3c76d20100fce3d067%5E1..414c4984fdbb03b688bb5c3c76d20100fce3d067/