2012-05-17 70 views
6

我有一个白色的背景,但与此布局我被封锁,因为文字颜色也是白色的,我找不到解决方案,使它红色,所以我可以设置我的白色背景,请任何帮助(作为你可以看到我被迫使用红色背景她所以我可以看到白色的文字)。改变文字颜色

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

复制乌尔XML文件在这里 – Abhinai

回答

11

绝招是你从android.R.layout.simple_list_item_multiple_choice复制内容布局文件,并让自己的布局(my_list_view并编辑xml文件并更改文字颜色

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

编辑将此文件保存为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

我怎么找到android.R.layout.simple_list_item_multiple_choice? –

+1

你可以在android.R.layout.simple_list_item_multiple_choice上按Ctrl + mousehover ..但我粘贴的代码见 – vnshetty

+0

错误:错误:字符串类型不允许('layout_width'值'match_parent')。 –

1

您可以设置它在XML布局:

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

或以编程方式:

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

如果你能看到我没有一个TextView! –

0

最好写自定义adpter。

备用反而不好soltuon是使用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 
/> 

的这种布局XML inspace这是相同android.R.layout.simple_list_item_multiple_choice布局,但现在你在你的布局使得相同使用相同的ID来进行更改。

+0

我做了一个新的XML文件,并将其复制到或什么? –

+0

使用任何名称在布局中创建一个新的xml,将该代码粘贴到该xml中,并使用此xml代替适配器中的android.R.layout.simple_list_item_multiple_choice。由于预先定义的ArrayAdapter会在get view中查找id“text1”,并且会像在xml中那样获得。 –

+0

我现在有这个错误:错误:字符串类型不允许('layout_width'值'match_parent')。 –

0

你可以尝试自定义列表视图..按照链接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"