问题描述
在我的应用程序,我想改变列表视图中的文本颜色。在这种情况下,我使用的XML文件的列表视图。可能吗?如果是,则给予例子。
gender.xml 的
< XML版本=1.0编码=UTF-8&GT?;
<的LinearLayout
的xmlns:机器人=http://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:机器人=http://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<String>(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.
这篇关于如何更改列表视图文本颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!