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

标签 android listview

我正在开发板球应用程序。我的要求是这样的,如果我选择团队 1,则必须显示可用国家名称列表,如果我选择一个国家名称作为印度,则必须显示来自印度的玩家列表,并且我从中选择了多个玩家。我已经做了一切。但我的问题是我正在使用 android.R.layout.simple_list_item_multiple_choice 来选择玩家。我正在使用简单的 ListView ,该列表的背景是黑色图像。我的 ListView 就是这样

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

     />

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

这是我的适配器类

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

最佳答案

您必须创建自定义 TextView 来更改所有 ListView 项 的颜色,而不是将默认 android.R.layout.simple_list_item_multiple_choice 传递给ArrayAdapter 您应该传递具有不同 TextColor 属性的自定义列表项 XML。

例如,在 Layout 文件夹下创建了 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);

已编辑:

这是我测试过的运行良好的代码。

   lv.setAdapter(new ArrayAdapter<String>(this, R.layout.custom_list_item, playersName));
    lv.setBackgroundColor(Color.BLACK);
    lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    lv.setOnItemClickListener(new OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> p_arg0, View p_arg1, int p_arg2, long p_arg3)
        {
             my_sel_items = new String("Selected Items");
                SparseBooleanArray a = lv.getCheckedItemPositions();
                for (int i = 0; i < a.size(); i++) {
                    if (a.valueAt(i)) {
                        my_sel_items = my_sel_items + ","
                                + (String) lv.getAdapter().getItem(i);
                    }
                }
                Log.v("values", my_sel_items);
        }
    });

ListView 的布局

        <ListView
                      android:id="@+id/android:list"
                      android:layout_marginTop="60dip"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent"
                      android:textColor="#000000"
                     />

关于android - 更改简单ListView多选Android的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15630562/

相关文章:

android - SQLitedatabase 每个用户名都有相同的列表

android - 如何在android fragment中添加带有 ListView 和搜索功能的自定义对话框

java - 无法在listview java中显示来自php mysql的数据

android - getItem(getCount() - getPosition() -1) 是如何工作的

android - 使用真实设备时运行布局

java - StateListDrawable 切换滤色器

java - 当我使用 proguard 混淆(Android Jack 编译器)时,我的应用程序崩溃了

Android 监听没有 UUID 的连接

Android 应用程序崩溃使用谷歌播放更新,但卸载并重新安装,它工作完美

android - Android Studio未安装最新的APK