我必须列出物品。这是我的布局XML:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:background="#FFFFFF"
android:stretchColumns="0">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:id="@+id/listbox">
<LinearLayout
android:layout_width="fill_parent"
android:background="#FFFFFF"
android:layout_gravity="center_horizontal"
android:layout_height="fill_parent">
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ListView>
<LinearLayout
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:background="#FFFFFF"
android:layout_gravity="center"
android:layout_height="fill_parent">
<TextView
android:id="@+id/emptytext"
android:paddingTop="100dp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#818185"
android:textSize="25sp"
android:textStyle="bold"
android:background="#FFFFFF"
android:text="@string/empty_fav"
android:gravity="center_horizontal|center_vertical"
android:paddingLeft="6dip"
/>
</LinearLayout>
</LinearLayout>
</TableRow>
</TableLayout>
它是R.layout.custom_list_item_1的xml。
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold"
android:background="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="?android:attr/listPreferredItemHeight"
/>
这是我的代码。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fav_layout);
....
........
wordDataHelper = new WordDataHelper(getApplicationContext());
favCursor = wordDataHelper.getCursorFav();
startManagingCursor(favCursor);
favAdapter = new SimpleCursorAdapter(
this,
R.layout.custom_list_item_1,
favCursor,
new String[] {WordDataHelper.ENGWORD},
new int[] {android.R.id.text1});
setListAdapter(favAdapter);
list = getListView();
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
showVideo(((TextView) view).getText());
}});
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
// @Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
menu.setHeaderTitle("Context Menu");
menu.add(0, CONTEXT_DELETE, 1, "Delete Item");
}
});
list.setTextFilterEnabled(true);
list.setClickable(true);
}
现在一切都很好,所有其他功能也都是 工作正常。但是,如果我触摸任何一行,它不会突出显示 即颜色没有变化。我的代码或问题是否有任何问题 是否必须单独实施?如果是这样,怎么样?
答案 0 :(得分:0)
您可能需要设置
android:listSelector
<{3}}的属性。
检查此答案ListView,这是很好的解释。
如果没有用(我还没试过),尝试将颜色选择器设置为R.layout.custom_list_item_1中定义的TextView的背景
答案 1 :(得分:0)
问题在于您将默认背景可绘制为纯颜色,不支持状态(点击,聚焦等)。如果您希望背景为白色,那么最好只使用其中一个“轻量级”Android主题,例如@android:style/Theme.Light.NoTitleBar
。
答案 2 :(得分:0)
尝试删除TextView项目的背景颜色:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="?android:attr/listPreferredItemHeight"
/>