如何更改列表视图文本颜色

如何更改列表视图文本颜色

本文介绍了如何更改列表视图文本颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序,我想改变列表视图中的文本颜色。在这种情况下,我使用的XML文件的列表视图。可能吗?如果是,则给予例子。

gender.xml

 < XML版本=1.0编码=UTF-8&GT?;
<的LinearLayout
  的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
  机器人:layout_width =FILL_PARENT
  机器人:layout_height =FILL_PARENT
  机器人:方向=垂直
 机器人:背景=@可绘制/ topelg
 >

      <的ListView
        机器人:ID =@ + ID / Android的:清单
        机器人:layout_marginTop =60dip
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =FILL_PARENT
        机器人:文字颜色=#000000

        />

< / LinearLayout中>
 

Egender.java

 包com.Elgifto;

进口android.app.ListActivity;
进口android.content.Intent;
进口android.graphics.Color;
进口android.os.Bundle;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.ArrayAdapter;
进口android.widget.Button;
进口android.widget.LinearLayout;
进口android.widget.LinearLayout.LayoutParams;
进口android.widget.ListView;

公共类Egender扩展ListActivity {
    按钮B1;
    ListView的LV;

     / **第一次创建活动时调用。 * /
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.gender);

       // B1 =(按钮)findViewById(R.id.butt1);
        B1 =新的按钮(这一点);
        b1.setText(完成);

       //b1.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        LV =(ListView控件)findViewById(android.R.id.list);

        lv.addHeaderView(B1);

        b1.setOnClickListener(新OnClickListener(){
              公共无效的onClick(视图v)
              {
                  //要发送的结果,以前只需调用的setResult()你
                  //活动结束。

                  完();
              }
        });

        lv.setAdapter(新ArrayAdapter和放大器; LT;字符串和放大器; GT;(这一点,
                android.R.layout.simple_list_item_single_choice,性别));

       lv.setBackgroundColor(Color.BLACK);
        lv.setItemsCanFocus(假);
        lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        lv.setTextFilterEnabled(真正的);

    }

    私有静态最后的String []性别=新的String [] {
       男,女
    };
}
 

解决方案

如果你想改变这一切的ListView的颜色的项目,而不是通过默认的 android.R.layout.simple_list_item_single_choice ArrayAdapter 你应该通过自定义列表项的XML,它有不同的文字颜色的属性。

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

 < XML版本=1.0编码=UTF-8&GT?;
< CheckedTextView的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:ID =@ + ID / text1中
机器人:layout_width =FILL_PARENT
机器人:layout_height =机器人:ATTR /列表preferredItemHeight
机器人:textAppearance =机器人:ATTR / textAppearanceLarge
机器人:重力=center_vertical
机器人:对号=机器人:ATTR / listChoiceIndicatorSingle
机器人:以下属性来=6dip
机器人:paddingRight =6dip
机器人:文字颜色=#FF0000
/>
 

然后传递给适配器:

 新ArrayAdapter<字符串>(这一点,R.layout.custom_list_item,StringList的)
 

我有名单,是所有项目都红了。

In my application I want to change the list view text color. In this case I am using XML file for list view. Is it possible? If yes then give the example.

gender.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
 android:background="@drawable/topelg"
 >

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

        />

</LinearLayout>

Egender.java

package com.Elgifto;

import android.app.ListActivity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;

public class Egender extends ListActivity{
    Button b1;
    ListView lv;

     /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gender);

       // b1=(Button) findViewById(R.id.butt1);
        b1=new Button(this);
        b1.setText("Done");

       //b1.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        lv=(ListView) findViewById(android.R.id.list);

        lv.addHeaderView(b1);

        b1.setOnClickListener(new OnClickListener(){
              public void onClick(View v)
              {
                  // To send a result, simply call setResult() before your
                  // activity is finished.

                  finish();
              }
        });

        lv.setAdapter(new ArrayAdapter&lt;String&gt;(this,
                android.R.layout.simple_list_item_single_choice, GENDER));

       lv.setBackgroundColor(Color.BLACK);
        lv.setItemsCanFocus(false);
        lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        lv.setTextFilterEnabled(true);

    }

    private static final String[] GENDER = new String[] {
       "Male","Female"
    };
}
解决方案

If you would like to change color of all ListView items, instead of passing default android.R.layout.simple_list_item_single_choice to ArrayAdapter you should pass custom list item XML, which has different TextColor attribute.

For example, created custom_list_item.xml under folder Layout:

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
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="#FF0000"
/>

Then passed it to adapter:

new ArrayAdapter<String>(this, R.layout.custom_list_item, stringList)

I've got list, were all items are red.

这篇关于如何更改列表视图文本颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-04 21:39