1,先上布局文件,利用了以前的布局,不要在意变量名称的细节

layout_wifi_item.xml

<?xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/item"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">            android:id="@+id/tv_wifiName"        android:layout_width="match_parent"        android:layout_height="100dp"        android:background="@drawable/item_click"        android:button="@null"        android:gravity="center"        android:text="123"        android:textColor="@android:color/black" />

2 drawable文件

item_click.xml

<?xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android">    android:drawable="@color/colorAccent" android:state_selected="true" />    android:drawable="@color/colorAccent" android:state_checked="true" />    android:drawable="@color/white" />

3.adapter   

AbstractAdapter 这是adapter的父类,里面主要重写了BaseAdapter,不用在意

package com.my.test.mytestdemo.adapter;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.CheckBox;import com.my.test.mytestdemo.R;import java.util.List;import java.util.Map;/** * Created by yyf on 2016/11/23. * * @Description: */public class ItemClickAdapter extends AbstractAdapter {    private Map, Boolean> map;    public ItemClickAdapter(Context context, List listData, Map, Boolean> map) {        super(context, listData);        this.map = map;    }    @Override    public View getView(final int position, View convertView, ViewGroup parent) {        final ViewHolder holder;        if (convertView == null) {            convertView = inflate(R.layout.layout_wifi_item);            holder = new ViewHolder();            holder.tv_wifiName = (CheckBox) convertView.findViewById(R.id.tv_wifiName);            convertView.setTag(holder);        } else {            holder = (ViewHolder) convertView.getTag();        }        if (map.get(position)){            holder.tv_wifiName.setChecked(true);        }else {            holder.tv_wifiName.setChecked(false);        }        holder.tv_wifiName.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (holder.tv_wifiName.isChecked()) {                    for (Integer keys : map.keySet()) {                        if (map.get(keys)) {                            map.put(keys, false);                        }                    }                    map.put(position, true);                } else {                    map.put(position, false);                }                notifyDataSetChanged();            }        });        return convertView;    }    private class ViewHolder {        private CheckBox tv_wifiName;    }}

4.activity 

package com.my.test.mytestdemo.listview.listview;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import com.my.test.mytestdemo.R;import com.my.test.mytestdemo.adapter.ItemClickAdapter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class ItemClickActivity extends AppCompatActivity {    private ListView lv_list;    private ItemClickAdapter adapter;    private List list = new ArrayList();    private Map,Boolean> map=new HashMap, Boolean>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_item_click);        initView();    }    private void initView() {        for (int i = 0; i < 5; i++) {             list.add(i + "");            map.put(i,false);        }        lv_list = (ListView) findViewById(R.id.lv_list);        adapter = new ItemClickAdapter(this, list,map);        lv_list.setAdapter(adapter);        lv_list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);    }}

6,代码挺简单,就不做说明

更多相关文章

  1. 【学习Android遇到的错误】Unable to resolve target 'android-9
  2. Android中如何使用自定义对话框
  3. Android(安卓)常用命令
  4. Android(安卓)DownloadManager 使用
  5. Android介绍如何生成keystore 文件并使用
  6. Android实现签名涂鸦手写板
  7. layout_weight 权重
  8. Android(安卓)Device Monitor 报 open failed: Permission denie
  9. Arcgis for Android(安卓)开发环境配置(Android(安卓)Studio篇)

随机推荐

  1. 首批 Android(安卓)One 入门级手机正式推
  2. 一道高频的面试题:什么是零拷贝技术?
  3. 说一下这段时间面试的感觉
  4. 关于android导入工程时出现的@Override错
  5. Android开发―随笔杂记(2010年的)
  6. Redis为什么又引入了多线程?作者也逃不过
  7. android Edittext输入修改软键盘并关闭软
  8. 为什么java中序列化的serialVersionUID总
  9. 微服务还没彻底普及,宏服务又要来了?
  10. android 性能检测资料合集