如何实现android ListView-Items高亮 ?

文章标签: android,highlight
2015-3-20 1:30:26     人阅读    


ListView 使用自定义的带有图片和文本的cust rows,下面是配置

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
 
    android:id="@+id/label"
 
    android:layout_width="wrap_content"
 
    android:layout_height="wrap_content"
 
    android:textSize="26px"
 
    android:layout_marginLeft="3px"
 
    android:singleLine="true"
 
    android:ellipsize="end"
 
    android:textColorHighlight="#FEC403"
/
/>

我设置了一个  itemclicklistener ,如下,工作正常,我现在想当item被单击的时候高亮显示...

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);}


再点击的时候改变文本的颜色....不知道该如何做...


下面是 ListView Item xml file:

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@drawable/rowselector"
>





<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
 
    android:id="@+id/musicicon"
 
    android:layout_width="wrap_content"
 
    android:layout_height="fill_parent"
 
    android:src="@drawable/musicicon"
 
    android:paddingLeft="3px"

/>





<TextView xmlns:android="http://schemas.android.com/apk/res/android"
 
    android:id="@+id/label"
 
    android:layout_width="wrap_content"
 
    android:layout_height="wrap_content"
 
    android:textSize="26px"
 
    android:layout_marginLeft="3px"
 
    android:singleLine="true"
 
    android:ellipsize="end"
 
    android:focusable="false"

/>


 rowselector.xml:

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

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_selected="true"
 
    android:drawable="@color/orange" />

</selector>


单击事件OnItemClick 

@Override

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


 

 

你需要使用  Selector.

.声明明你的layout,并将如下的背景xml设置上去:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/background_pressed">
    <item android:state_selected="true"
        android:drawable="@drawable/background_pressed">
    <item android:state_enabled="true"
        android:drawable="@drawable/background_normal">
</selector>


2.在你需要选中的时候加上以下代码:

Layout mLayout = findVeiwById(R.id.xxx);
boolean bSelected = true or false;
mLayout.setSelected(bSelected ); 


原文地址:http://www.itmmd.com/201503/661.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

Android. 根据图片的资源ID获得图片的高度和宽度   上一篇
下一篇  android app关闭后想让 Android alarm 继续运行?
精彩回复
我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!