2011-06-02 61 views
0

我必须为项目做一个列表。这里是我的XML布局:Android listview高亮显示问题

<?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

你可能需要设置ListView

android:listSelector 

属性。

检查答案Android ListView Selector Color,它很好解释。

如果没有工作(我还没有尝试过),可以尝试设置颜色选择,如R.layout.custom_list_item_1

0

问题定义TextView的背景是,你重写默认的背景可以绘制成纯色,不支持状态(点击,聚焦等)。如果您希望背景为白色,则最好使用其中一种“明亮”的Android主题,例如@android:style/Theme.Light.NoTitleBar

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" 
/>