2012-05-17 19 views
6

Tengo un fondo blanco pero con este diseño estoy bloqueado porque el color del texto también es blanco y no puedo encontrar una solución para hacerlo rojo para poder establecer mi fondo blanco, cualquier ayuda por favor (como Puedes ver que estoy forzado a usar un fondo rojo para poder ver el texto blanco.Cambiando el color del texto

public class QueueListActivity extends ListActivity { 
// LIST OF ARRAY STRINGS WHICH WILL SERVE AS LIST ITEMS 
ArrayList<String> listItems = new ArrayList<String>(); 
String newtext; 
String listFiles; 
// DEFINING STRING ADAPTER WHICH WILL HANDLE DATA OF LISTVIEW 
ArrayAdapter<String> adapter; 

// RECORDING HOW MUCH TIMES BUTTON WAS CLICKED 
int clickCounter = 0; 

ArrayList<String> selectedItems = new ArrayList<String>(); 


@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.queuelistactivity); 
    Bundle extras1 = getIntent().getExtras(); 
    listFiles=GetFiles(); 

    StringTokenizer tokonizer1 = new StringTokenizer(listFiles,";"); 
    while(tokonizer1.hasMoreElements()){ 
     Log.i("verif","0"); 
     listItems.add(tokonizer1.nextToken());} 
      initializeListItems(); 



    if (extras1 != null) { 
     newtext = extras1.getString("newitem"); 
     listItems.add(newtext); 
     adapter.notifyDataSetChanged(); 
     getListView().setItemChecked(listItems.size() - 1, false); 

    } 




} 



// METHOD WHICH WILL HANDLE DYNAMIC INSERTION 
public void addItems(View v) { 

    Intent intent = new Intent(QueueListActivity.this, AjouterFiles.class);  
    QueueListActivity.this.startActivity(intent); 


    /* 
    listItems.add(userName); 
    adapter.notifyDataSetChanged(); 
    getListView().setItemChecked(listItems.size() - 1, false);*/ 


} 

public void deleteItems(View v) { 
    String toDelete = ""; 
    SparseBooleanArray sp = getListView().getCheckedItemPositions(); 

    for (int i = 0; i < sp.size(); i++) { 
     toDelete += ";" + sp.get(i); 
     if (sp.get(i)) { 
      listItems.remove(i); 
     } 

    } 
    adapter.notifyDataSetChanged(); 
    Toast.makeText(getApplicationContext(), toDelete, Toast.LENGTH_LONG).show(); 
    initializeListItems(); 
} 

private void initializeListItems() { 
    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, listItems); 
    setListAdapter(adapter); 
    ListView lv = getListView(); 
    lv.setCacheColorHint(Color.rgb(0, 0, 0)); 
    lv.setBackgroundColor(Color.rgb(178, 34, 34)); 


    for (int i = 0; i < lv.getCount(); i++) { 
     lv.setItemChecked(i, false); 
    } 
} 
+0

copia ur archivo XML aquí – Abhinai

Respuesta

11

mejor truco es copiar archivo de diseño de contenidos de android.R.layout.simple_list_item_multiple_choice y hacer su propio diseño (my_list_view y edite el archivo xml y cambie el color del texto.

adapter = new Arr ayAdapter (this, my_list_view, listItems);

Editar guardar este archivo como my_list_view;

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_vertical" 
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:paddingLeft="6dip" 
    android:paddingRight="6dip" 
    android:backdround="#FFFFFF" //white background 
    android:textColor="#000000" //black color text 
/> 
+0

¿cómo puedo encontrar android.R.layout.simple_list_item_multiple_choice? –

+1

puede simplemente Ctrl + mousehover en android.R.layout.simple_list_item_multiple_choice .. pero pegué ese código, vea – vnshetty

+0

error: Error: Cadenas de tipos no permitidas (en 'layout_width' con el valor 'match_parent'). –

1

Se puede establecer en el diseño XML:

<TextView 
... 
... 
android:textColor="#FF0000" > 
</TextView> 

o mediante programación:

textview.setTextColor(Color.RED); 
//textview must be defined in your class 
+1

si se puede ver que no tengo una TextView !! –

0

es mejor escribir el adptador personalizado.

alternativo pero no es bueno soltuon es utilizar este diseño xml InSpace de android.R.layout.simple_list_item_multiple_choice

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_vertical" 
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:paddingLeft="6dip" 
    android:paddingRight="6dip" 


    android:textColor= Color.Red  //please correct the syntax 
/> 

Este es el mismo diseño, pero su android.R.layout.simple_list_item_multiple_choice están haciendo ahora mismo en sus diseños con los mismos identificadores para hacer los cambios en él.

+0

Hago un nuevo archivo xml y lo copio en o qué? –

+0

crea un nuevo xml en el diseño con cualquiera de tu nombre, pega este código en ese xml y utiliza este xml en lugar de android.R.layout.simple_list_item_multiple_choice en tu adaptador. Como pre definir, ArrayAdapter buscará el id. "Texto1" en la vista de obtención y lo obtendrá tal como lo tiene también en su xml. –

+0

tengo este error ahora: Error: tipos de cadena no permitidos (en 'layout_width' con el valor 'match_parent'). –

0

puede intentar vista de lista personalizada .. siga el enlace click here

0
<TextView 
     android:id="@+id/text_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="Name" 
     android:textColor="@color/white" 
     android:textSize="11dp" 
/> 
4
android:textColor="@android:color/white" 
Cuestiones relacionadas