我正在为板球开发一个应用程序。我的要求是这样的,如果我选择第1组,则必须显示可用国家名称列表,如果我选择国家名称为印度,则必须显示来自印度的玩家列表,并且我已从中选择多个玩家。我做了一切。但我的问题是我使用android.R.layout.simple_list_item_multiple_choice来选择玩家。我使用简单的列表视图,该列表的背景是黑色图像。我的列表视图就像那样
<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);
答案 0 :(得分:8)
您必须创建Custome TextView
来更改所有ListView items
的颜色,而不是将默认android.R.layout.simple_list_item_multiple_choice
传递给ArrayAdapter
您应该传递自定义列表项XML,它具有不同的TextColor属性。
例如,在文件夹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" />
答案 1 :(得分:0)
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>
布局xml 将此属性style="@style/ListFont"
放到listview
答案 2 :(得分:0)
检查以下代码:
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");
}
}
您在Log中的结果
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
<强>编辑:强>
检查此link您可以使用任何字体颜色和&amp;此代码中的listview背景颜色。
答案 3 :(得分:0)
Luksprog 解决方案是可以接受的并不困难。但没有线
if (position == 1)