怎么设置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>
+1 --------------------编程问答-------------------- 同三楼和四楼 --------------------编程问答-------------------- 3楼。。。 --------------------编程问答-------------------- +1 --------------------编程问答-------------------- --------------------编程问答--------------------
哦 --------------------编程问答-------------------- 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