我試圖更改ListView中的顏色,因爲我想使用白色背景。不用觸摸ListView就不顯示文本。觸摸時,背景會切換爲黑色,而文本是可見的,因爲文本是白色的。 如何更改Textcolour並避免背景在接觸時更改顏色? 這裏是我的代碼:在ListView中更改顏色
public class LayoutNight extends Fragment {
ListView myList;
String[] listContent = {
"Mo",
"Di",
"Mi",
"Do",
"Fr",
"Sa",
"So"
};
public static Fragment newInstance(Context context) {
LayoutNight f = new LayoutNight();
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.layout_night, null);
myList = (ListView)root.findViewById(R.id.list);
ArrayAdapter<String> adapter
= new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_multiple_choice,
listContent);
myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
myList.setAdapter(adapter);
// That was a try, but it crashed ...
// TextView myListText = (TextView)root.findViewById(R.id.list);
// myListText.setTextColor(color.black);
return root;
}
}
編輯
我做Raghunandan的建議,但背景沒有改變。 這是不變的截圖
這是屏幕的滾動(不幸的是黑色)
而且這是在屏幕的選擇選項
編輯 現在它的工作方式如下,而不需要在滾動時更改背景(感謝Pragnani和Raghunandan),但它不再可點擊。我怎樣才能讓它可點擊?
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/listbkg"
android:drawSelectorOnTop="true"
android:cacheColorHint="@android:color/transparent">
</ListView>
list_row.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5px"
android:paddingBottom="5px"
android:textSize="35sp"
android:textColor="#000000"
android:layout_gravity="center"
android:maxHeight="75px"/>
代碼:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.layout_night, null);
myList = (ListView)root.findViewById(R.id.list);
ArrayAdapter<String> adapter
= new ArrayAdapter<String>(getActivity(),R.layout.list_row,listContent);
myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
myList.setFocusable(true);
myList.setClickable(true);
myList.setAdapter(adapter);
return root;
}
爲了達到這個目的,你必須製作你自己的listview適配器! – Pavlos 2013-03-24 19:02:03
而不是此android.R.layout.simple_list_item_multiple_choice,使用您的自定義佈局只有一個文本視圖,並將其設置爲您的ArrayAdapter佈局資源。給你喜歡的屬性,如文字顏色,尺寸等 – Pragnani 2013-03-24 19:02:14
但這不會改變顏色的變化,而觸摸。 你需要一個選擇器,http://stackoverflow.com/questions/3817776/problem-setting-listview-selector-color-when-pressed – fish 2013-03-24 19:04:03