更改简单ListView多选Android的文本颜色

更改简单ListView多选Android的文本颜色,android,listview,Android,Listview,我正在为板球开发一个应用程序。我的要求是这样的,如果我选择了第1队,则必须显示可用国家名称的列表,如果我选择了一个国家名称作为印度,则必须显示来自印度的球员列表,并且我必须从中选择多个球员。我什么都做了。但我的问题是我使用android.R.layout.simple\u list\u item\u多选来选择玩家。我使用的是简单的列表视图,列表的背景是黑色图像。我的listview就是这样 <ListView android:id="@+id/list" andro

我正在为板球开发一个应用程序。我的要求是这样的,如果我选择了第1队,则必须显示可用国家名称的列表,如果我选择了一个国家名称作为印度,则必须显示来自印度的球员列表,并且我必须从中选择多个球员。我什么都做了。但我的问题是我使用android.R.layout.simple\u list\u item\u多选来选择玩家。我使用的是简单的列表视图,列表的背景是黑色图像。我的listview就是这样

    <ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="8.5"
    android:cacheColorHint="#00000000" 

     />
现在的问题是listview值显示为黑色。我已经有了黑色的背景图像。值也是黑色的。所以看起来不太好。如何在不更改自定义适配器的情况下将listview值的颜色更改为白色

这是我的适配器类

 adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,playersName);
    lvview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    lvview.setAdapter(adapter);
styles.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    ...other styles
//加上这个

    <style name="ListFont" parent="@android:style/Widget.ListView">
    <item name="android:textColor">#FFFFFF</item>
    </style> 

     ...other styles

    </resources>

在layout xml中,将此属性style=@style/ListFont放入listview

您必须创建Custome TextView来更改所有listview项的颜色,而不是将默认的android.R.layout.simple\u list\u item\u多项选择传递给ArrayAdapter。您应该传递具有不同TextColor属性的自定义列表项xml

例如,在文件夹布局下创建了custom_list_item.xml:

   <?xml version="1.0" encoding="utf-8"?>
   <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/textView"
       android:layout_width="fill_parent"
       android:layout_height="?android:attr/listPreferredItemHeight"
       android:textAppearance="?android:attr/textAppearanceLarge"
       android:gravity="center_vertical"
       android:checkMark="?android:attr/listChoiceIndicatorSingle"
       android:paddingLeft="6dip"
       android:paddingRight="6dip"
       android:textColor="#FF00FF"
       />
然后将其传递给适配器,如下所示:

     new ArrayAdapter<String>(this, R.layout.custom_list_item, playersName);
编辑:

下面是我测试过的代码,它运行良好

listview的布局

检查以下代码:

package com.example.mapsdemo;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;

public class MainActivity extends Activity {

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

    private ListView lView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        fillarray();
        lView = (ListView) findViewById(R.id.listView1);
        lView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_multiple_choice, a));
        lView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        lView.setOnItemClickListener(new OnItemClickListener() {

            private String my_sel_items;

            public void onItemClick(AdapterView arg0, View arg1, int arg2,
                    long arg3) {
                // List list = new ArrayList();
                my_sel_items = new String("Selected Items");
                SparseBooleanArray a = lView.getCheckedItemPositions();

                for (int i = 0; i < a.size(); i++) {
                    if (a.valueAt(i)) {
                        my_sel_items = my_sel_items + ","
                                + (String) lView.getAdapter().getItem(i);
                    }
                }
                Log.v("values", my_sel_items);
            }
        });
    }

    private void fillarray() {
        // TODO Auto-generated method stub
        a.clear();
        a.add("a");
        a.add("b");
        a.add("c");
        a.add("d");
        a.add("e");

    }

}
编辑:

选中此选项,您可以在此代码中使用任何字体颜色和listview背景颜色。

解决方案是可以接受的,并不困难。但是没有线

if (position == 1) 

android:textColor=@color/white答案是创建一个属性为color/white的textview,并将其放入listview中。请参见此处其他答案FFFFFF更改listviewResource条目的样式ListFont已经有包项android:textColor。有这个错误我不是在问这个。。我希望listview文本颜色为白色。。我该怎么做呢?我已经试过并测试过了,它也能正常工作。告诉我你是如何实现的?你能发布一些代码或屏幕截图,让我明白到底缺少什么。只要试着用@+id/android:list来更改你的ListView id,然后进行测试。如果我使用的是android.R.layout.simple\u list\u item\u multiple\u choice,我是能够检查所选的项目。ie将ckeckbox的颜色更改为绿色复选框。但是如果我使用CheckedTextView,我可以单击listview,但复选框不会更改为选中状态
package com.example.mapsdemo;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;

public class MainActivity extends Activity {

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

    private ListView lView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        fillarray();
        lView = (ListView) findViewById(R.id.listView1);
        lView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_multiple_choice, a));
        lView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        lView.setOnItemClickListener(new OnItemClickListener() {

            private String my_sel_items;

            public void onItemClick(AdapterView arg0, View arg1, int arg2,
                    long arg3) {
                // List list = new ArrayList();
                my_sel_items = new String("Selected Items");
                SparseBooleanArray a = lView.getCheckedItemPositions();

                for (int i = 0; i < a.size(); i++) {
                    if (a.valueAt(i)) {
                        my_sel_items = my_sel_items + ","
                                + (String) lView.getAdapter().getItem(i);
                    }
                }
                Log.v("values", my_sel_items);
            }
        });
    }

    private void fillarray() {
        // TODO Auto-generated method stub
        a.clear();
        a.add("a");
        a.add("b");
        a.add("c");
        a.add("d");
        a.add("e");

    }

}
03-26 12:25:06.106: V/values(3301): Selected Items,a
03-26 12:25:06.810: V/values(3301): Selected Items,a,b
03-26 12:25:07.466: V/values(3301): Selected Items,a,b,c
03-26 12:25:08.136: V/values(3301): Selected Items,a,b,c,d
if (position == 1)