Android listview highlight issue
I have to do a listing for items. Here is my XML for layout:
<?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>
It is the xml for R.layout.custom_list_item_1.
<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"
/>
And here is my code.
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) {
开发者_C百科 // 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);
}
Now everything is showing fine and all other functionality is also working fine. But if I am touching the any row, it is not highlighting i.e. the color is not changing. Is there any problem in my code or does it have to be implement separately? If so, how?
You probably need to set the
android:listSelector
attribute of the ListView.
Check this answer Android ListView Selector Color, it's well explained.
If that didn't work out (I haven't tried it), try setting a color selector as the background of the TextView defined in R.layout.custom_list_item_1
The problem is that you're overwriting the default background drawable to a plain color, which doesn't support states (clicked, focused, etc). If you want the background to be white, it might be better to just use one of the "light" Android themes, e.g. @android:style/Theme.Light.NoTitleBar
.
Try to remove the background color of your TextView item:
<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"
/>
精彩评论