2012-09-21 24 views
5


Tengo problemas para configurar el color del texto para el Spinner. He visto algunos ejemplos, pero la mayoría tiene matrices ArrayAdapter y String desde strings.xml en res folder ya que los ítems de mi Spinner se recuperan de la base de datos SQLite, así que creo que puede que no ayuden.
Cómo establecer el color del texto de los elementos en Spinner Android

Éstos son los códigos de mi Spinner 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(); 

Y, estos son los códigos de diseño del hilandero en 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" /> 

favor me ayude con la forma de establecer el color de texto en artículos Hilandero.
Agradeceré cualquier ayuda brindada. Gracias.! =)

+1

favor revisa este enlace http://stackoverflow.com/a/6661762/614807 –

Respuesta

9

Crea un archivo xml para tu elemento giratorio. y colóquelo en la carpeta de diseño

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

y finalmente en su código.

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

Su respuesta también me ayudó. Thanksss =) – Preeyah

+0

Todavía no hay cambio de color .. :( –

0

modificar el color del texto a crear un nuevo archivo XML en sus res/carpeta de diseño

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

y llamar adaptador similar a como este:

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

Este es el código fuente de 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"/> 

El problema aquí es androide:? Attr/dropdownListPreferredItemHeight no es pública, pero parece que es del 48 por inmersión o 64dip: https://android.googlesource.com/platform/frameworks/base/+/414c4984fdbb03b688bb5c3c76d20100fce3d067%5E1..414c4984fdbb03b688bb5c3c76d20100fce3d067/

Cuestiones relacionadas