0

我有一个设置为使用 singleChoice 的列表视图。我要做的就是将默认背景颜色更改为白色,将文本颜色更改为黑色。我无法弄清楚如何做到这一点。这是我的xml布局:

<ListView
    android:id="@+id/lvSpeeds"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@id/llToolbar"
    android:layout_below="@id/rgSpeedUnits"
    android:textColor="@android:color/black"
    android:choiceMode="singleChoice"
    android:background="#ffffff"
    android:cacheColorHint="#00ffffff"
    android:clickable="true"
    android:divider="#ff000000"
    android:dividerHeight="1dp"
    android:focusable="true"
    android:scrollingCache="true" />

编辑:我应该指出我只想使用 xml 布局文件而不是代码来更改它。我已经知道如何在代码中做到这一点。使用 android.R.layout.simple_list_item_single_choice 以外的自定义布局会强制您实现适配器、绑定、编写更多代码等等。从查看更多帖子来看,似乎无法仅使用 xml 更改文本颜色。实际上,似乎无法更改一行中的任何内容,因为无法访问底层布局 android.R.layout.simple_list_item_single_choice。

4

3 回答 3

1

试试这个:

在 getview 方法的适配器中插入此代码:

LinearLayout mRowLayout = (LinearLayout) vi
                    .findViewById(R.id.list_item_layout);
            final TextView title = (TextView) vi
                    .findViewById(R.id.list_item);

            title.setText(Massage[position]);

            mRowLayout.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {


                                    title.setTextColor(Color.RED);

                            });

这里 list_item 代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_item_layout"
android:orientation="vertical" >


<RelativeLayout android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/row_single"
                android:layout_margin="5dp">


<TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:textColor="@android:color/black"
        android:padding="10dp"
        android:textSize="16sp"

        android:layout_toLeftOf="@+id/arrow"
        android:id="@+id/list_item"/>
</RelativeLayout>
</LinearLayout>
于 2013-01-07T07:41:02.240 回答
1

对于列表视图使用这样的android选择器

并用 l 保存它anyname.xm并给出列表背景的参考

 <selector xmlns:android="http://schemas.android.com/apk/res/android" >

     <item android:state_pressed="true" android:drawable="@drawable/about_btn_hover"></item>
    <item android:drawable="@drawable/about_btn"></item> 

</selector>

并为更改文本颜色在 res 目录中添加颜色文件夹创建一个 xml 保存textchangecolor.xml 并添加以下行

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" 
        android:color="@color/whiteColor"></item>
    <item android:color="@color/bluetxt"></item> 
</selector>

并给出对 textcolor 的引用

于 2013-01-07T07:35:54.993 回答
0

我能找到的最佳解决方案是使用 styles.xml 并为我的对话框设置主题。

样式.xml

<style name="DialogTheme" parent="AppTheme">
    <item name="android:textColor">@color/text</item>
    <item name="android:textColorAlertDialogListItem">@color/text</item>
    + other styles
</style>

在 Java 内置对话框中:

ContextThemeWrapper theme;
theme = ContextThemeWrapper(view.getContext(), R.style.DialogTheme);
AlertDialog.Builder builder = new AlertDialog.Builder(theme);

在 XML 构建的对话框中:

<myLayout
    ....
    android:theme="@style/DialogTheme" />
于 2019-02-08T05:44:17.627 回答