zoukankan      html  css  js  c++  java
  • Android自定义单选,自定义选中状态

    如图,此布局用GrildView实现,弹出框由Activity的dialog样式实现。

    屏蔽系统GrildView点击背景黄色:

    grildview.setSelector(new ColorDrawable(Color.TRANSPARENT));

    实现数据源自定义Adapter

    public class PeoPleNumAdapter extends BaseAdapter {
    
        public List<PeopleNum> FiltArray;
        public static HashMap<Integer, Boolean> isselected;
        LayoutInflater inflater;
        int pos;
    
        public PeoPleNumAdapter(Context context,List<PeopleNum> PeopleNumList,int pos) {
            super();
            inflater = LayoutInflater.from(context);
            this.FiltArray = PeopleNumList;
            this.pos = pos;
            isselected = new HashMap<Integer, Boolean>();
            initData();
        }
    
        public void initData() {
            for (int i = 0; i < FiltArray.size(); i++) {
                PeopleNum peo = FiltArray.get(i);
                if(i!=pos)
                getIsSelected().put(i, false);
                else
                getIsSelected().put(i, true);
            }
        }
    
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return FiltArray.size();
        }
    
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            
                return FiltArray.get(position);
            
        }
    
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }
    
        @Override
        public View getView(int position, View view, ViewGroup parent) {
            // TODO Auto-generated method stub
    
            if (view == null) {
    
                view = inflater.inflate(R.layout.people_grild, null);
                TextView spec = (TextView) view.findViewById(R.id.peoplenum);
                final ImageView img = (ImageView) view.findViewById(R.id.numselect);
                PeopleNum peo = FiltArray.get(position);
                spec.setText(peo.getNum());
                if (getIsSelected().get(position)) {
                    img.setVisibility(View.VISIBLE);
                } else {
                    img.setVisibility(View.GONE);
                }
            }
            return view;
        }
    
        public static HashMap<Integer, Boolean> getIsSelected() {
            return isselected;
        }
    
        public static void setIsSelected(HashMap<Integer, Boolean> isSelect) {
            PeoPleNumAdapter.isselected = isSelect;
        }
    }

    Activity中实现点击:

    grildview.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    // TODO Auto-generated method stub
                    PeoPleNumAdapter.getIsSelected().put(position, true);
                    adapter = new PeoPleNumAdapter(context, PeopleNumList, position);
                    grildview.setAdapter(adapter);
                }
            });
  • 相关阅读:
    nullnullConnecting with WiFi Direct 与WiFi直接连接
    nullnullUsing WiFi Direct for Service Discovery 直接使用WiFi服务发现
    nullnullSetting Up the Loader 设置装载机
    nullnullDefining and Launching the Query 定义和启动查询
    nullnullHandling the Results 处理结果
    装置输出喷泉装置(贪心问题)
    数据状态什么是事务?
    停止方法iOS CGD 任务开始与结束
    盘文件云存储——金山快盘
    函数标识符解决jQuery与其他库冲突的方法
  • 原文地址:https://www.cnblogs.com/LIANQQ/p/3732649.html
Copyright © 2011-2022 走看看