当前位置:编程学习 > wap >>

怎么设置ListView 的选中了的Item的背景颜色?

怎么设置ListView 的选中了的Item的背景颜色?也就是说选中的为特殊的颜色,
其他的为黑色。我用的是simpleAdapter,在网上找了很多方法都没解决 ,要么就是如果Item多了的话就不行了,要么就是只是那种一瞬间的变色的,我要的效果是点击后颜色就改变,直到点击其他Item时变回原来的黑色,谢谢了,大侠们 --------------------编程问答-------------------- 我没有做过.不过我想我有个思路~

android里面用代码是可以获得listview里面的组件的,比如textview,imageview之类的.

你可以在点击事件中,将他们的背景色改变. --------------------编程问答-------------------- 我没有做过.不过我想我有个思路~

android里面用代码是可以获得listview里面的组件的,比如textview,imageview之类的.

你可以在点击事件中,将他们的背景色改变. --------------------编程问答--------------------

<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:drawable="@drawable/listitem_normal" />
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/listitem_highlight" />
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/listitem_highlight" />
    <item android:state_selected="true" android:drawable="@drawable/listitem_normal" />
    <item android:state_focused="true" android:drawable="@drawable/listitem_normal" />
</selector>

--------------------编程问答--------------------
引用 3 楼 stylewang0529 的回复:
XML code

<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:drawable="@drawable/listitem_normal" />
    <item android:stat……

+1 --------------------编程问答-------------------- 同三楼和四楼 --------------------编程问答--------------------
引用 3 楼 stylewang0529 的回复:
XML code

<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:drawable="@drawable/listitem_normal" />
    <item android:stat……
3楼。。。 --------------------编程问答--------------------
引用 4 楼 sky123123 的回复:
引用 3 楼 stylewang0529 的回复:
XML code

<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:drawable="@drawable/listitem_normal" ……
+1 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 3 楼 stylewang0529 的回复:
XML code

<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:drawable="@drawable/listitem_normal" />
    <item android:stat……

哦 --------------------编程问答--------------------    3楼说的是点击那一项的时候,不同状态不同颜色的设置吧?我觉得楼主说的是,选中项的颜色和其他未选中的颜色设置成不同。
    你设置一个变量,记录选中的positon,在绘制的时候,当position为你标记的position的时候,绘制一个颜色,其他的情况绘制另一种颜色,就可以了,不过,你要在onItemClicked里更新一下界面的。我资源里有的,连定位都实现了,lz去看看吧。呵呵。 --------------------编程问答-------------------- 选中保持颜色的对吧 android listview默认是点击变色 up就还原了

楼上的那几位说的selector 也只能是改变点击变色的样式而已
代码如下:

public PlayListAdapter(Context activ,ArrayList<MediaInfo> playlist,ListView listView){
mContext = activ;
mPlaylist = playlist;
mPlayListView = listView;
mActiv = (MediaReadActivity)activ;
mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mPlayListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if(mPlaylist.get(position).getType().equals("netvideo")){
mActiv.playWebVideoWhenItemClick(mPlaylist.get(position),position);
}else{
mActiv.playMusicWhenItemClick(mPlaylist.get(position),position,true);
}
// if(mActiv.getListMode()==0x0001){
setSelectItem(position);
// }
notifyDataSetInvalidated();
}

});
}

你在onItemClick中设置那个setSelectItem的值



if(position==selectItem){
convertView.setBackgroundResource(R.drawable.playlist_selector);
}else{
convertView.setBackgroundDrawable(null);
}
    
return convertView;


Adapter的getView方法中 最后位置加上这几句;有一点最好用图片不要用颜色 用颜色会导致滚动时
有的item的背景变成你设置的颜色然后这个颜色又消失



int selectItem = -1;
public void setSelectItem(int pos){
selectItem = pos ;
}

public int getSelectItem(){
return selectItem ;
}


所以最好还是自定义你的Adapter
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,