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

  • 相关阅读:
    Linux:看门狗watchdog.sh程序编写示例
    通用linux程序看门狗(watchdog)python版
    Linux看门狗脚本 1.4
    Qt 6中的输入事件
    使用Qt5Compat库从Qt 5移植到Qt 6
    vertical-align(mozilla的在线帮助)
    css文字如何垂直居中?
    JS-apply 、call 以及 bind
    敢放手把事情给别人做
    页面----调用本地程序
  • 原文地址:https://www.cnblogs.com/zhangqie/p/6207295.html
Copyright © 2011-2022 走看看