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

解决方案 »

  1.   

    我没有做过.不过我想我有个思路~android里面用代码是可以获得listview里面的组件的,比如textview,imageview之类的.你可以在点击事件中,将他们的背景色改变.
      

  2.   

    我没有做过.不过我想我有个思路~android里面用代码是可以获得listview里面的组件的,比如textview,imageview之类的.你可以在点击事件中,将他们的背景色改变.
      

  3.   

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

  4.   

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

  5.   

    选中保持颜色的对吧 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