我用的GridView做的底部菜单用BaseAdapter适配的,现在想要做的效果是点击其中的一项Item变换图片彩色效果(不是gridview.setSelector那个因为那个方法是瞬间的效果),然后点击其他的item项的时候,刚才点击的这个图片恢复默认的黑白效果,我现在的问题是gridview.setAdapter(new MyAdapter());
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
ImageView iv = null;
iv = new ImageView(arg0.getContext());
webView.loadUrl(listmenus.get(arg2).getUrl());
ShowImageFileFromAsset(listmenus.get(arg2).getImgselected(), iv);
LinearLayout ll = (LinearLayout) arg1;
TextView ltext = (TextView) ll.getChildAt(1);
ll.removeAllViews();
ll.addView(ltext, 0);
ll.addView(iv, 0);;
}
});用网上的这个方法能改变item图片,但问题是当点击下一个的时候第一个点击的item怎么恢复默认图片

解决方案 »

  1.   

    定义一个全局变量记录上一次的位置,就解决问题了 private int itemIndex = 0;
    private OnItemClickListener mListener = new OnItemClickListener() { @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
    long id) {
    gridView.getChildAt(itemIndex).setBackgroundResource(R.drawable.icon);
    if (gridView.getChildAt(position).getId() == view.getId()) {
    gridView.getChildAt(position).setBackgroundDrawable(getResources().getDrawable(R.drawable.book_icon));
    itemIndex = position;
    }
    }
    };
      

  2.   

    使用android SyncTask试试
    签名:www.bangchui.org