该怎么办??
我现在只能让item被选中的position记录在一个链表里,但是如何让用户也知道处于选中状态??
本来想用变色来实现的。但是我取消选中的话,会变成黑色,使背景图片不能显示了。
现在的想法是:在该行view后边加一个“对号”图片,选中后,使图片的可见状态变成true。这个图片该怎么加,又该怎么取得??
代码如下:
class listListener implements OnItemClickListener { public void onItemClick(AdapterView<?> arg0, View view, int position,
long arg3) {
// makeList(db, listview);
try {
if (!positions.contains(position)) {
positions.add(position);
view.setBackgroundColor(Color.rgb(r, g, b));
} else {
positions.remove(positions.indexOf(position)); // 特别注意,仍然有问题;
view.setBackgroundColor(Color.BLACK);
}
System.out.println(view.getId());
} catch (IndexOutOfBoundsException e) {
System.out.println("出错误了,溢出错误");
}
} }

解决方案 »

  1.   

    不用加一个checkbox的复选框在list里么?list复选一般都是这么做的吧。
    你说的加图片,要加载listView的layout里,继承baseadapter实现自己的adapter,
    在getView里连接图片。
      

  2.   

    onItemClick 中的操作做完后,调用 adatper 的notifydatesetchange 函数,会自动刷新listview这时在getView函数中做判断,当前position 和链表中记录的选中position是否一致。一致就改变其颜色。或添加图片。顺便说一句。
    item被选中的position记录在一个链表里 
    这个做法不好。不要记录position ,应该记录item 的id之类的东西。
      

  3.   

    在getview里面设置当前项选中中颜色的就可以了。其他项不用管。就不回有黑色,所以你的背景图片还是一样设置。主要方法还是在getview里面操作。给你代码参考下。
    class BottomListener implements OnItemClickListener { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    long arg3) {
    SwitchActivity(arg2);
    }
    }private void SwitchActivity(int arg2) {
    bottomadapter.SetFocus(arg2);
    package com.renrenwei.adapter;import com.renrenwei.activity.R;import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;public class ActivityGroupAdapter extends BaseAdapter {
    private int bottomnum;
    private LayoutInflater layoutinflater;
    private View myview;
    private int index = 0; public ActivityGroupAdapter(Context c, int bottomnum) {
    this.bottomnum = bottomnum;
    this.layoutinflater = LayoutInflater.from(c);
    } public int getCount() {
    return bottomnum;
    } public void SetFocus(int index) {
    this.index = index;
    // this.notifyDataSetChanged();
    this.notifyDataSetInvalidated();// 刷新界面
    } public Object getItem(int position) {
    return position;
    } public long getItemId(int position) {
    return position;
    } public View getView(int position, View convertView, ViewGroup parent) {
    myview = layoutinflater.inflate(R.layout.group_bottom_item, null);
    ImageView imageview = (ImageView) myview
    .findViewById(R.id.imageview_bottom);
    TextView textview = (TextView) myview
    .findViewById(R.id.textview_bottom);
    if (position == 0) {
    imageview.setBackgroundResource(android.R.drawable.ic_menu_mapmode);
    textview.setText(R.string.Group_Item_Main);
    }
    if (position == 1) {
    imageview
    .setBackgroundResource(android.R.drawable.ic_menu_myplaces);
    textview.setText(R.string.Group_Item_My);
    }
    if (position == 2) {
    imageview.setBackgroundResource(android.R.drawable.ic_menu_share);
    textview.setText(R.string.Group_Item_square);
    }
    if (position == 3) {
    imageview.setBackgroundResource(android.R.drawable.ic_menu_more);
    textview.setText(R.string.Group_Item_More);
    }
    if (position == index) {
    myview.setBackgroundResource(R.drawable.css_biaoqian);
    } else {
    myview.setBackgroundResource(0);
    }
    return myview;
    }
    }