2012-05-17 23 views
6

Ich habe einen weißen Hintergrund, aber mit diesem Layout bin ich blockiert, weil Textfarbe auch weiß ist und ich kann keine Lösung finden, um es rot zu machen, damit ich meinen weißen Hintergrund einstellen kann, bitte helfen Sie (wie Sie können sehen, dass ich gezwungen bin, einen roten Hintergrund sie zu verwenden, also kann ich den weißen Text sehen).Ändern der Textfarbe

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

ur XML-Datei hier – Abhinai

Antwort

11

Bester Trick ist, dass Sie Inhalt Layout-Datei von android.R.layout.simple_list_item_multiple_choice und machen Sie Ihr eigenes Layout (my_list_view kopieren Bearbeiten Sie die XML-Datei und ändern Sie die Textfarbe

Adapter = neu Arr ayAdapter (this, my_list_view, listItems);

Bearbeiten Sie diese Datei als 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

Wie finde ich android.R.layout.simple_list_item_multiple_choice? –

+1

Sie können einfach Strg + Mausklick auf android.R.layout.simple_list_item_multiple_choice .. aber ich habe diesen Code eingefügt siehe – vnshetty

+0

Fehler: Fehler: String-Typen nicht erlaubt (bei 'Layout_width' mit Wert 'Match_Parent'). –

1

Sie können es in der XML-Layout gesetzt:

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

oder programmatisch:

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

kopieren, wenn Sie sehen, ich habe keinen Textview !! –

0

besser, benutzerdefinierte adpter zu schreiben.

alternative, aber nicht gut soltuon ist dieses Layout xml InSpace von android.R.layout.simple_list_item_multiple_choice verwenden

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

Dies ist die gleiche android.R.layout.simple_list_item_multiple_choice Layout aber Sie machen jetzt gleiche in Ihren Layouts mit denselben IDs, um die Änderungen daran vorzunehmen.

+0

Ich mache eine neue XML-Datei und kopiere diese in oder was? –

+0

Erstellen Sie ein neues XML im Layout mit einem beliebigen Namen, fügen Sie diesen Code in dieses XML ein und verwenden Sie dieses XML anstelle von android.R.layout.simple_list_item_multiple_choice in Ihrem Adapter. Als vordefinieren wird ArrayAdapter nach der ID "text1" in der get-Ansicht suchen und diese erhalten, so wie Sie das auch in Ihrem XML haben. –

+0

Ich habe dies jetzt Fehler: Fehler: String-Typen nicht erlaubt (bei 'Layout_Breite' mit Wert 'Match_Parent'). –

0

können Sie benutzerdefinierte Listenansicht versuchen .. folgen Sie dem Link 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" 
Verwandte Themen