关于点击ListView使其中的text变色的问题
1.用selector和setTextColor的方式,具体不讲了,因为网上很多,给个链接http://gundumw100.iteye.com/blog/1169065
2. 上述方法在listview里有时候会神奇的不好使,那么就得用代码了,这是lz搞了一天搞的啊,你们可要珍惜!
在adapter的getView()方法里加入下面的话
view.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubLog.d("meng", "action + "+event.getAction());if(event.getAction() == 0){view.setBackgroundColor(Color.parseColor("#2cb1e1"));holder.name.setTextColor(Color.WHITE);holder.text1.setTextColor(Color.WHITE);holder.text2.setTextColor(Color.WHITE);}else if(event.getAction() == 2){view.setBackgroundColor(Color.parseColor("#2cb1e1"));holder.name.setTextColor(Color.WHITE);holder.text1.setTextColor(Color.WHITE);holder.text2.setTextColor(Color.WHITE);}else if(event.getAction() == 3){view.setBackgroundColor(Color.TRANSPARENT);holder.name.setTextColor(Color.BLACK);holder.text1.setTextColor(R.color.profile_color);holder.text2.setTextColor(R.color.profile_color);}else if(event.getAction() == 1){view.setBackgroundColor(Color.TRANSPARENT);holder.name.setTextColor(Color.BLACK);holder.text1.setTextColor(R.color.profile_color);holder.text2.setTextColor(R.color.profile_color);}else{Log.d("meng", "else + "+event.getAction());view.setBackgroundColor(Color.TRANSPARENT);holder.name.setTextColor(Color.BLACK);holder.text1.setTextColor(R.color.profile_color);holder.text2.setTextColor(R.color.profile_color);}return false;}注意:如果要同时换背景,最好用color值,用图片会产生布局混乱的问题,而且必须用
view.setBackgroundColor(Color.parseColor("#2cb1e1"));
不要用你自己定义的id R.color.xxx,这样颜色会变的,而且不能用
view.setBackgroundResource(R.color.item_click_color);
因为个别手机尤其是4.0系统的手机会出现点击一会就不变色的bug!
else其实可有可无了,是为了保险加入的。
一个问题有时候能困扰人一天,真2啊。