构造自己的adapter,在getView中,设置颜色,点击item,刷新listview。

代码:

import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; public class MyListView4 extends Activity { private List<Map<String, Object>> mData; ListView setlistViewLeft; MyAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list); mData = getData(); setlistViewLeft = (ListView)findViewById(R.id.listleft); adapter = new MyAdapter(this); setlistViewLeft.setAdapter(adapter); setlistViewLeft.setOnItemClickListener(mLeftListOnItemClick); } private List<Map<String, Object>> getData() { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("title", "G1"); map.put("info", "google 1"); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G2"); map.put("info", "google 2"); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G3"); map.put("info", "google 3"); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G4"); map.put("info", "google 4"); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G5"); map.put("info", "google 5"); list.add(map); return list; } AdapterView.OnItemClickListener mLeftListOnItemClick = new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { adapter.setSelectItem(arg2); adapter.notifyDataSetInvalidated(); // adapter.notifyDataSetChanged(); } }; /** * listview中点击按键弹出对话框 */ public final class ViewHolder { public TextView titleText; public TextView infoText; } public class MyAdapter extends BaseAdapter { private LayoutInflater mInflater; public MyAdapter(Context context) { this.mInflater = LayoutInflater.from(context); } public int getCount() { // TODO Auto-generated method stub return mData.size(); } public Object getItem(int arg0) { // TODO Auto-generated method stub return mData.get(arg0); } public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.leftview, null); holder.titleText = (TextView) convertView.findViewById(R.id.titleleftlist); holder.infoText = (TextView) convertView.findViewById(R.id.infoleftlist); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.titleText.setText((String) mData.get(position).get("title")); holder.infoText.setText((String) mData.get(position).get("info")); if (position == selectItem) { convertView.setBackgroundColor(Color.RED); } else { convertView.setBackgroundColor(Color.TRANSPARENT); } //convertView.getBackground().setAlpha(80); return convertView; } public void setSelectItem(int selectItem) { this.selectItem = selectItem; } private int selectItem=-1; } }

其xml文件写法,同我的另一博文:

android 自定义adapter extends BaseAdapter,做有自己布局的listView

或:

siteListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
for(int i=0;i<parent.getCount();i++){
View v=parent.getChildAt(parent.getCount()-1-i);
if (position == i) {
v.setBackgroundColor(Color.RED);
} else {
v.setBackgroundColor(Color.TRANSPARENT);
}
}
}
});

屏蔽获取焦点时的高亮橙色显示:

listview.setSelector(R.drawable.nocolor);图片为一张无色透明图片即可,或者

android:listSelector="@drawable/nocolor"

更多相关文章

  1. android 图片指定大小并保存
  2. Android四大图片缓存框架之-Fresco之initialize(二)
  3. android 怎样为多媒体文件生成缩略图
  4. android上传图片或文件
  5. Android(安卓)选择图片、上传图片之PictureSelector
  6. FrameLayout的使用
  7. 设置图片重复
  8. Android(安卓)大图压缩处理,避免OOM
  9. [Android]-图片JNI(C++\Java)高斯模糊的实现与比较

随机推荐

  1. 2013.01.03 (2)——— android开发实例之仿
  2. 关于标准android中视频播放器中的快进和
  3. 仿照Android的池化技术
  4. Android Bluetooth Code
  5. 运行时改变Button图片的android:drawable
  6. Android(安卓)AM命令行启动程序的方法
  7. android 状态栏移动到底部
  8. 网络时间同步
  9. Android中启动动画源码讲解
  10. 【翻译】(1)何为Android?(2012-06-30废弃)