zoukankan      html  css  js  c++  java
  • Android控件Gridview实现多个menu模块,可添加可删除

    此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能;Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局。

    效果图:

               

    代码:

    自定义GridView

    <menu.menudemo.ui.view.ZQScrollGridView
        android:id="@+id/home_gridview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#E4E4E4"
        android:cacheColorHint="#00000000"
        android:fadingEdge="none"
        android:horizontalSpacing="1dp"
        android:listSelector="#00000000"
        android:numColumns="3"
        android:scrollbars="none"
        android:verticalSpacing="1dp"
        ></menu.menudemo.ui.view.ZQScrollGridView>

    首页代码

    /**
     * 首页
     */
    public class HomeFragment extends Fragment implements  View.OnClickListener {
    
        private View view;
        private TextView tv_sign;
        private Intent intent;
        private ZQScrollGridView gridView;
    
        private static HomeAdapter adapter;
        public static List<Integer> listPosition;
        public static List<UserBean> list;
        private static ACache aCache;
    
        private Context context;
    
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            return inflater.inflate(R.layout.fragment_home, container, false);
        }
    
        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onActivityCreated(savedInstanceState);
            view = getView();
            aCache = ACache.get(getActivity());
            context = getActivity();
            initView();
        }
    
        public void initView() {
            tv_sign = (TextView) view.findViewById(R.id.home_sign);
            tv_sign.setOnClickListener(this);
            gridView = (ZQScrollGridView) view.findViewById(R.id.home_gridview);
            onLoad();
        }
    
    
        public void onLoad() {
            adapter = new HomeAdapter(getActivity());
            gridView.setAdapter(adapter);
            gridView.setOnItemClickListener(onItemClickListener);
            gridView.setOnItemLongClickListener(onItemLongClickListener);
            showData();
        }
    
        /*****
         * 刷新数据
         */
        private void notifyData() {
            adapter.notifyDataSetChanged();
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
    
            }
        }
    
        public Handler handler = new Handler() {
            public void handleMessage(Message msg) {
                if (msg.what == 1) {
                    showLongClick(false);
                } else if (msg.what == 2)//删除
                {
                    showDelete();
                }
            }
        };
    
    
        AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (position == (listPosition.size() - 1)) {
                    intent = new Intent(getActivity(), SearchActivity.class);
                    intent.putExtra("list", (Serializable) listPosition);
                    startActivityForResult(intent, 1);
                }
                else {
    
                }
    
            }
        };
        AdapterView.OnItemLongClickListener onItemLongClickListener = new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
    
                if (position == (listPosition.size() - 1)) {
                    return false;
                }
                showLongClick(true);
                Message msg = new Message();
                msg.what = 1;// 删除
                msg.obj = 1;
                LoginFragmentActivity.handler.sendMessage(msg);
                return false;
            }
        };
    
    
    
        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == 1) {
                if (resultCode == 1) {
                    if (data.getStringExtra("key").equals("2")) {
                        listPosition.clear();
                        listPosition = HomeData.POSITION(aCache);
                        notifyData();
                    }
                }
            }
        }
    
        private void showData() {
            listPosition = HomeData.POSITION(aCache);
            list = new ArrayList<UserBean>();
            for (int i = 0; i < 34; i++) {
                UserBean user = new UserBean(HomeData.IMG[i], HomeData.TITLE[i], false, false);
                list.add(user);
            }
            notifyData();
        }
    
        /***
         * 删除
         */
        private void showDelete() {
            //删除缓存
            String home = "";
            for (int i = 0; i < listPosition.size() - 1; i++) {
                UserBean userBean = list.get(listPosition.get(i));
                if (!userBean.isCheck()) {
                    home += listPosition.get(i) + ",";
                }
            }
            aCache.remove("home");
            listPosition.clear();
            try {
                UtilFileDB.ADDFile(aCache, "home", home.substring(0, (home.length() - 1)));
                if (listPosition == null || listPosition.size() <= 1) {
                    listPosition = HomeData.POSITION(aCache);
                }
            } catch (Exception e) {
                listPosition.add((list.size()-1));//只留加号
            }
            showLongClick(false);
        }
    
        /****
         * 重新刷新数据
         *
         * @param isvisibility
         */
        private void showLongClick(boolean isvisibility) {
            list.clear();
            for (int i = 0; i < 34; i++) {
                UserBean user = new UserBean(HomeData.IMG[i], HomeData.TITLE[i], false, isvisibility);
                list.add(user);
            }
            HomeFragment.list.get(33).setIsvisibility(false);
            notifyData();
        }
    }

    由于代码太多未完全给出,源码直接下载即可(点击下载)

    源码点击下载 https://github.com/DickyQie/android-small-project

  • 相关阅读:
    CDH5.13 集成Kerberos配置
    使用bash脚本删除文件最后几行
    yolov3模型微调(fine-tune)备忘
    ubuntu 18.04 rsync 命令使用 服务端配置
    python 子包调用 跨目录调用
    [转]命令行界面 (CLI)、终端 (Terminal)、Shell、TTY的联系与区别
    bash shell 判断变量是否在列表中
    TensorFlow 图像分类模型 inception_resnet_v2 模型导出、冻结与使用
    numpy 数组集合运算及下标操作
    Win10 Service'MongoDB Server' failed to start. Verify that you have sufficient privileges to start system services【简记】
  • 原文地址:https://www.cnblogs.com/zhangqie/p/6207295.html
Copyright © 2011-2022 走看看