现在本人要实现这样一个效果。下图是一个ListView列表,当触摸某个条目时,背景色会变绿,ImageView会更改图标,TextView的文字会变成红色,手指移开时又会恢复原始状态。
如果仅仅是改变背景色还好弄点,为ListView设置selector就可以了,但是目前还要改变Item上控件的内容就比较麻烦了,本以为采用onTouch()事件可以搞定
但是设置后,ListView本身的点击事件就会被屏蔽。郁闷中......

解决方案 »

  1.   

    貌似用这个属性?
    android:drawSelectorOnTop="false"
      

  2.   

    <ListView android:id="@id/android:list"
        android:cacheColorHint="#00000000"
    />
    或者:
        代码中写明listview.setCacheColorHint(0);
      

  3.   

    mListView.setOnItemClickListener(new OnItemClickListener() {

               public void onItemClick(AdapterView<?> arg0, View v,
    int position, long arg3) {
                       v.setBackgroundColor(Color.BLUE);
    }
    }
      

  4.   

    1楼,2楼完全没有理解我的意思啊,3楼理解了,但是这个是不可以的,OnItemClickListener是点击时状态,
    我的需求是按压时产生变化,不过还是谢谢大家的回答
      

  5.   

    设置selector是不行的,修改ListView的adapter,在getview()中取要处理的控件对象进行效果处理。
      

  6.   

    可以让listview监听OnTouchListenerlist.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
    Toast.makeText(ListViewTween.this, "down", 1000).show();
    break; default:
    break;
    }
    return false;
    }
    });
    然后你在那个Case里面把View强转为listview,然后改变它的属性就可以了!
      

  7.   

    楼主,你也太不公平了吧,是我最先说监听OnTouch事件的,还帮你把按下事件都弄好了,我只得5分,11楼得11分?