博客
关于我
Android--grideview列表,附带图标显示消息数量
阅读量:510 次
发布时间:2019-03-07

本文共 7582 字,大约阅读时间需要 25 分钟。

一、概述

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片文字等内容,比如实现十六宫格,九宫格,四宫格等,用GridView是首选,也是最简单的。

常用属性:
Android:columnWidth:设置列的宽度。

android:gravity:设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。

android:horizontalSpacing:两列之间的间距。

android:numColumns:设置列数。

android:stretchMode:缩放模式。

android:verticalSpacing:两行之间的间距。

二、效果图

三、Demo

item.xml

主布局中一个Grideview就可以

适配器

package adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.SimpleAdapter;import android.widget.TextView;import com.example.water.R;import java.util.ArrayList;import java.util.HashMap;/** * Created by Administrator on 2019/3/29 * 

* desc: */public class funcationGrideViewAdapter extends SimpleAdapter { Context context; int order_daiban_count; int img_id; int title_id; ArrayList

> meumList = new ArrayList
>(); class ViewHolder { TextView text_count,text_title; ImageView imageview; } public funcationGrideViewAdapter(Context context, ArrayList
> data, int resource, String[] from, int[] to) { super(context, data, resource, from, to); this.meumList=data; this.context=context;// TODO Auto-generated constructor stub } public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub // 页面 ViewHolder holder; LayoutInflater inflater = LayoutInflater.from(context); convertView = inflater.inflate( R.layout.item_funcation, null); holder = new ViewHolder(); holder.imageview=(ImageView)convertView.findViewById(R.id.ItemImage); holder.imageview.setImageResource((Integer) meumList.get(position).get("ItemImage")); holder.text_title= (TextView) convertView .findViewById(R.id.ItemText); holder.text_title.setText((CharSequence) meumList.get(position).get("ItemText")); holder.text_count = (TextView) convertView .findViewById(R.id.count); int count=0; if (meumList.get(position).containsKey("Count")){ if((Integer) meumList.get(position).get("Count")!=0){ holder.text_count.setVisibility(View.VISIBLE); holder.text_count.setText((Integer) meumList.get(position).get("Count")+""); } } return convertView; }}

import android.Manifest;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.KeyEvent;import android.view.View;import android.widget.AdapterView;import android.widget.GridView;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;import com.bumptech.glide.Glide;import com.google.gson.Gson;import com.google.gson.JsonArray;import com.google.gson.JsonElement;import com.google.gson.JsonParser;import com.lzy.okgo.OkGo;import com.lzy.okgo.cache.CacheMode;import com.lzy.okgo.callback.StringCallback;import com.lzy.okgo.model.Response;import com.scwang.smartrefresh.layout.SmartRefreshLayout;import com.scwang.smartrefresh.layout.api.RefreshLayout;import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;import com.scwang.smartrefresh.layout.listener.OnRefreshListener;import com.tbruyelle.rxpermissions2.Permission;import com.tbruyelle.rxpermissions2.RxPermissions;import com.youth.banner.Banner;import com.youth.banner.BannerConfig;import com.youth.banner.listener.OnBannerListener;import com.youth.banner.loader.ImageLoader;import org.json.JSONException;import org.json.JSONObject;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import adapter.funcationGrideViewAdapter;import adapter.newsAdapter;import adapter.newsRecycleViewLisitenter;import bean.news;import butterknife.BindView;import butterknife.ButterKnife;import butterknife.OnClick;import io.reactivex.functions.Consumer;import utils.AppContext;public class MainActivity extends Activity {    private static final String TAG = MainActivity.class.getName();    private ArrayList
images; private ArrayList
imageTitle; private List
newsList = new ArrayList<>(); private ArrayList
> meumList; private newsAdapter mNewsAdapter; private funcationGrideViewAdapter mFuncationGrideViewAdapter; @BindView(R.id.banner) Banner banner; @BindView(R.id.image1) ImageView image1; @BindView(R.id.tv_title1) TextView tvTitle1; @BindView(R.id.tv_time1) TextView tvTime1; @BindView(R.id.image2) ImageView image2; @BindView(R.id.tv_title2) TextView tvTitle2; @BindView(R.id.tv_time2) TextView tvTime2; @BindView(R.id.tv_msg) ImageView tvMsg; @BindView(R.id.linearlayout_msg_navigation) LinearLayout linearlayoutMsgNavigation; @BindView(R.id.news_recyclerView) RecyclerView newsRecyclerView; @BindView(R.id.refreshLayout) SmartRefreshLayout refreshLayout; @BindView(R.id.funcationgv) GridView funcationgv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //绑定初始化ButterKnife ButterKnife.bind(this); //初始化 initData(); initView(); } private void initView() { //功能 mFuncationGrideViewAdapter = new funcationGrideViewAdapter(this,meumList,R.layout.item_funcation,new String[]{ "ItemImage", "ItemText" }, // 对应map的Key new int[] { R.id.ItemImage, R.id.ItemText }); funcationgv.setAdapter(mFuncationGrideViewAdapter); funcationgv.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView
arg0, View arg1, int arg2, long arg3) { Toast.makeText(MainActivity.this,arg1.getId()+","+arg2+""+arg3,Toast.LENGTH_SHORT).show(); } }); } private void initData() { //设置功能按钮 meumList = new ArrayList
>(); HashMap
map = new HashMap
(); map.put("ItemImage", R.mipmap.app_lccgx_ico); map.put("ItemText", "支付缴费"); map.put("Count", 3); meumList.add(map); map = new HashMap
(); map.put("ItemImage", R.mipmap.app_lccgx_ico); map.put("ItemText", "转账"); map.put("Count", 0); meumList.add(map); map = new HashMap
(); map.put("ItemImage", R.mipmap.app_lccgx_ico); map.put("ItemText", "充值"); map.put("Count", 1); meumList.add(map); map = new HashMap
(); map.put("ItemImage", R.mipmap.app_lccgx_ico); map.put("ItemText", "出行"); map.put("Count", 0); meumList.add(map); map = new HashMap
(); map.put("ItemImage", R.mipmap.app_lccgx_ico); map.put("ItemText", "收钱"); map.put("Count", 0); meumList.add(map); } @OnClick({R.id.banner, R.id.image1, R.id.tv_title1, R.id.tv_time1, R.id.image2, R.id.tv_title2, R.id.tv_time2, R.id.tv_msg, R.id.linearlayout_msg_navigation, R.id.news_recyclerView, R.id.refreshLayout}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.image1: break; case R.id.tv_title1: break; case R.id.tv_time1: break; case R.id.image2: break; case R.id.tv_title2: break; case R.id.tv_time2: break; case R.id.tv_msg: break; case R.id.linearlayout_msg_navigation: break; } } @Override protected void onStop() { super.onStop(); } @Override protected void onDestroy() { super.onDestroy(); finish(); }}

 

转载地址:http://ptpjz.baihongyu.com/

你可能感兴趣的文章
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>