如何突出显示ListView项目

我遇到了以下问题。

我有一个ListView,其自定义行包含imageview和textview。 textview的xml代码是

 

然后我有一个itemclicklistener工作正常,我想通过执行以下操作突出显示已单击的textview。

 public void onItemClick(AdapterView adaptview, View clickedview, int position, long id) { //TODO: ACTIONS String pathtofile = (String) adaptview.getItemAtPosition(position); View rowview = (View) adaptview.getChildAt(position); rowview.setSelected(true);} 

我希望高亮颜色为xml中的“#FEC403”(浅橙色),但高亮颜色仍为灰色。 那么如何正确设置高亮颜色?

提前致谢

编辑:

这是我最终如何做到的:

这是我的ListView Item xml文件:

     

和rowselector.xml:

     

最后我的OnItemClick现在很短:

 @Override public void onItemClick(AdapterView adaptview, View clickedview, int position, long id) { //TODO: ACTIONS clickedview.setSelected(true); } 

    你应该使用一个Selector

    这个问题及其答案可能会有所帮助….

     @Override public void onItemClick(AdapterView< ?> parent, View view, int position, long arg3) { for(int a = 0; a < parent.getChildCount(); a++) { parent.getChildAt(a).setBackgroundColor(Color.BLACK); } view.setBackgroundColor(Color.RED); } 

    在您的活动中:

     listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView< ?> parent, View view, int position, long itemid) { itemOnclickList(position, view); } }); public void itemOnclickList(int position, View view) { if (listview.isItemChecked(position)) { view.setBackgroundDrawable(getResources().getDrawable(R.drawable.image_checked)); } else { view.setBackgroundDrawable(getResources().getDrawable(R.drawable.image_uncheck)); } adapter.notifyDataSetChanged(); } 

    在您的适配器中:

      public View getView(int position, View view, ViewGroup parent) { View convertView = inflater.inflate(R.layout.listdocument_item, null); ListView lvDocument = (ListView) parent; if (lvDocument.isItemChecked(position)) { convertView.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.image_checked)); } else { convertView.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.image_uncheck)); } return convertView; } 

    祝你好运!

    这是它应该如何使用选择器:

    在drawable中创建一个名为selector_listview_item.xml的文件,它看起来像(将颜色更改为您自己的颜色):

     < ?xml version="1.0" encoding="utf-8"?>       

    现在在你的布局中描述列表行(例如layout_list_row.xml),在根布局上添加android:background="@drawable/selector_listview_item" ,所以布局看起来像:

     < ?xml version="1.0" encoding="utf-8"?>  android:orientation="vertical">   

    (注意:您可能希望在该listview行中的项目上添加android:focusable="false" ,以使行可单击,如此处所述)

    完成。