博客
关于我
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/

你可能感兴趣的文章
Nash:轻量级、安全且可靠的脚本语言
查看>>
NAS、SAN和DAS的区别
查看>>
NAS个人云存储服务器搭建
查看>>
NAS服务器有哪些优势
查看>>
NAT PAT故障排除实战指南:从原理到技巧的深度探索
查看>>
nat 网卡间数据包转发_你是不是从来没有了解过光纤网卡,它跟普通网卡有什么区别?...
查看>>
NAT-DDNS内网穿透技术,快解析DDNS的优势
查看>>
NAT-DDNS内网穿透技术,快解析DDNS的优势
查看>>
NAT-DDNS内网穿透技术,解决动态域名解析难题
查看>>
natapp搭建外网服务器
查看>>
NativePHP:使用PHP构建跨平台桌面应用的新框架
查看>>
nativescript(angular2)——ListView组件
查看>>
NativeWindow_01
查看>>
Native方式运行Fabric(非Docker方式)
查看>>
Nature | 电子学“超构器件”, 从零基础到精通,收藏这篇就够了!
查看>>
Nature和Science同时报道,新疆出土四千年前遗骸完成DNA测序,证实并非移民而是土著...
查看>>
Nature封面:只低一毫米,时间也会变慢!叶军团队首次在毫米尺度验证广义相对论...
查看>>
Nat、端口映射、内网穿透有什么区别?
查看>>
Nat、端口映射、内网穿透有什么区别?
查看>>
nat打洞原理和实现
查看>>