我遵循三星开发者的教程使用片段。
我的listview菜单有一个白色的背景(激活时是蓝色的)和白色的文本,而不是教程中的listview菜单颜色更深。我想是因为我用了全息之光的主题。如何使我的列表视图菜单更具可读性,例如改变列表视图中的字体颜色?
编辑:当我将主题更改为Holo (Dark)时,菜单看起来不错。然而,我希望它有黑色的文字颜色在白色的背景。
我尝试创建一个名为simple_list_item_activated_1.xml的布局文件,但这没有任何区别。我还尝试将simple_list_item_activated_1
更改为simple_list_item_activated_2
和simple_list_item
等,但这也没有任何区别,在某些情况下,当我运行它时,应用程序强制退出。
FragmentA.java:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter(getActivity().
getApplicationContext(), android.R.layout.simple_list_item_activated_1, tutorialList));
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
From ArrayAdapter Overview:
默认情况下,该类期望提供的资源id引用单个TextView。如果您想使用更复杂的布局,请使用带有字段id的构造函数。那个字段id应该在更大的布局资源中引用一个TextView。(…)要使用其他的东西而不是TextViews的数组显示,例如,ImageViews,或者有一些数据除了toString()结果填充视图,重载getView(int, View, ViewGroup)来返回你想要的视图类型。
根据您的需要,您可以提供自定义的TextView定义在XML文件或更复杂的布局,并使用它重写getView()方法。第一个选项可能对你足够了,只需创建自定义textview黑色文本和白色背景。
示例代码
/res/可拉的/row_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<color android:color="#0CC" />
</item>
<item>
<color android:color="#FFF" />
</item>
</selector>
/res/布局/sample_row.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:background="@drawable/row_background"
android:textColor="#000"
android:minHeight="?android:attr/listPreferredItemHeight"
android:clickable="true" />
和FragmentA.java
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter(
getActivity().getApplicationContext(),
R.layout.sample_row,
tutorialList)
);
}