LISTVIEW嵌套GRIDVIEW的一些处理(点击GRIDVIEW的条目,能够显示他在LISTVIEW中的位置)(对这篇文章的优化处理,不每次都new onItemClickListener)
前几天写了点击GRIDVIEW的条目,能够显示他在LISTVIEW中的位置,当时的处理是在ListView的适配器里的GetView方法里每次都new GridView的onItemClickListener,这样显然是不合理的,
/**GridVIew的条目点击监听*/
private GvOnItemClickListener mGvOnItemClickListener;//成员
这是Fragment的入口:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_message_firends, null);//ViewGroup ?
ButterKnife.bind(this, view); mObserver = new MyObserver();//创建一个观察者对象
//创建一个访问网络的Control
Message_Net_Control control = new Message_Net_Control(this);
control.getFriendsShareFromServer();//访问网络并且解析Json
mListView.setDivider(null); mGvOnItemClickListener=new GvOnItemClickListener(); return view;
}
这是ListView的适配器的GetView方法:
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
final ViewHolder holder;
if (convertView != null) {
holder = (ViewHolder) convertView.getTag();
} else {
convertView = View.inflate(UIUtils.getContext(), R.layout.lv_item_message_friends, null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} //获取某条分享的动态
Message_Responce_Info.EveryShareInfo info = mResults_list.get(i);
//获取当前分享动态的所有回复的集合
ArrayList<Message_Responce_Info.EveryShareInfo.Reply> replys = info.getPub_com();
//动态添加评论之前先移除评论线性布局里的所有子View
holder.ll_comment_message_friends.removeAllViews();
for (int j = 0; j < replys.size(); j++) {
TextView textView = new TextView(UIUtils.getContext());
textView.setPadding(0, 8, 0, 0);
textView.setText(replys.get(j).getPc_name() + ": " + replys.get(j).getPc_txt());
textView.setTextColor(Color.DKGRAY);
holder.ll_comment_message_friends.addView(textView);
} holder.tvUserName.setText(info.getPub_frd_name());//设置好友动态分享者的名字
holder.tvTime.setText(info.getPub_datetime());//设置分享这条动态的时间
holder.tvSaySth.setText(info.getPub_context());//设置分享动态的内容 ArrayList<String> small_pics = info.getPub_th_img();//说说图片的缩略图集合
holder.gv.setTag(i);//给当前的GridView设置一个位置标记
//在设置GridVIewAdapter的时候先传进去listView的条目位置
Message_Friends_GridViewAdapter gridAdapter = new Message_Friends_GridViewAdapter(small_pics);
holder.gv.setAdapter(gridAdapter);//设置GridView的适配器 //给GridView设置条目点击监听
holder.gv.setOnItemClickListener(mGvOnItemClickListener); //显示用户头像
ImageLoader.getInstance().displayImage(GlobalConstant.SERVER_URL + "/" + info.getPub_frd_head(), holder.ivUserFace); return convertView;
}
点击监听,在成员里
/**自定义的GridView的点击监听*/
class GvOnItemClickListener implements AdapterView.OnItemClickListener{
/**
*
* @param adapterView 相当于Holder,ListVIew的条目,在这里相当于ListView里的GridViewEx
* @param view 表示GridView的条目
* @param position GridVIew里的条目位置
* @param l
*/
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
int lv_item_position= (Integer) adapterView.getTag();//GridView在ListView条目里的位置 //点击的这条说说信息
Message_Responce_Info.EveryShareInfo shareInfo = mResults_list.get(lv_item_position);
ArrayList<String> big_pics = shareInfo.getPub_img();//大图集合
Intent intent = new Intent(UIUtils.getContext(), MessageImageShowActivity.class);
intent.putStringArrayListExtra("bigPics",big_pics);//把说说图片的大图集合传过去
intent.putExtra("bigPicPostion",position);//把点击的那个说说图片位置传过去
startActivity(intent);
}
}
这样每次只new 一个onItemClickListener,并且也达到了效果。
LISTVIEW嵌套GRIDVIEW的一些处理(点击GRIDVIEW的条目,能够显示他在LISTVIEW中的位置)(对这篇文章的优化处理,不每次都new onItemClickListener)的更多相关文章
- 【Android基础】listview控件的使用(3)------Map与SimpleAdapter组成的多显示条目的Listview
前面介绍的两种listview的使用都是最基础的,所以有很大的局限性,比如只能在一个item(即每一行的条目)中显示一个文本信息,这一篇我将介绍Map与SimpleAdapter组成的多显示条目的Li ...
- flutter ListView嵌套高度问题
ListView嵌套时高度无法自适应,需要设置高度才可以显示,设置以下属性可以解决上述问题 shrinkWrap: true, physics: NeverScrollableScrollPhysic ...
- listview嵌套gridview,并实现grid元素部分显示以及点击展开与折叠
原文链接:http://blog.csdn.net/duguju/article/details/49538341 有时我们需要用GridView显示目录列表,有时甚至是二级的,即listview每一 ...
- ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多
ScrollView 效果 ScrollView 说明 一个ScrollView 嵌套ListView 嵌套GridView的上拉加载更多,下拉刷新的demo. 主要是重写了GridView和Lsit ...
- Android中ListView嵌套GridView的简单消息流UI(解决宽高问题)
最近搞一个项目,需要用到类似于新浪微博的消息流,即每一项有文字.有九宫格图片,因此这就涉及到ListView或者ScrollView嵌套GridView的问题.其中GridView的高度问题在网上都很 ...
- ListView嵌套GridView
首先,我们通过两个实例来了解下本篇文章所讲的重点,看下图: 微博: 陌陌: 大家应该对这两款软件并不陌生,接下来,我将列举下本文将要实现的几个点: 1.ListView嵌套GridView,互不冲突, ...
- 【Android】listview 嵌套gridview报错,代码:”during second layout pass: posting in next frame
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, QQ986945193 公众号:程序员小冰 说明:本人曾经在listview嵌套gridview出现 ...
- android listView嵌套gridview的使用心得
在开发的过程中可能需要用到listview嵌套gridview的场景,但是在Android中, 不能在一个拥有Scrollbar的组件中嵌入另一个拥有Scrollbar的组件,因为这不科学,会混淆滑动 ...
- ListView嵌套GridView,显示不全解决办法
ListView嵌套GridView时,遇到了GridView只显示一行,其余都显示不出来的问题,最终解决办法如下: 需要自定义GridView,重新绘制高度即可: public class MyGr ...
随机推荐
- 运行CImg库笔记
1. 在程序代码中加入 #include "CImg.h" using namespace cimg_library; 2. (1)Mac下 出现错误“无X11/Xlib.h”,: ...
- 管理MySQL的命令
USE 数据库名 :选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库. SHOW DATABASES: 列出 MySQL 数据库管理系统的数据库列表. SHOW TABLE ...
- div盒子水平垂直居中的方法
这个问题比较老,方法比较多,各有优劣,着情使用. 一.盒子没有固定的宽和高 方案1.Transforms 变形 这是最简单的方法,不仅能实现绝对居中同样的效果,也支持联合可变高度方式使用.内容块定义t ...
- jquery 1.9版本后不在支持browser 方法的解决方案
今天对jquery 进行升级,导致项目出错,原来在1.9版本之后 jquery 不支持browser 方法了. 官方建议的又不好用,所以我所jquery 原来的代码摘除来,又扩展回去. //解决jq ...
- HDU 5366 The mook jong
先暴力写了一个DFS,然后找规律.. #include<cstdio> #include<cstring> #include<cmath> #include< ...
- 在 Linux 环境下报错 java.lang.reflect.InvocationTargetException
今天开发了一个 excel 导出数据的功能,放到 linux 服务器上后发现报错. 捕获到 java.lang.reflect.InvocationTargetException 异常,这个异常不太常 ...
- WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行
最近项目涉及到较多设备批量管理的需求,发现一工具,可以批量对大量设备进行WEB端管理,工具主页:https://openstf.github.io/工具名STF(Smartphone Test Far ...
- Linux系统采用netstat命令查看DDOS攻击的方法
Linux系统采用netstat命令查看DDOS攻击的方法 来源:互联网 作者:佚名 时间:07-05 15:10:21 [大 中 小] 这篇文章主要为大家介绍了Linux系统采用netstat命令查 ...
- Github建站全攻略
本系列为原创,发表在我的github主页,详细介绍了如何在github上建立个人网站,还包括域名绑定.评论功能.站内搜索等辅助功能的介绍,欢迎交流. 一步步在GitHub上创建博客主页(6) 本篇 ...
- Stu Website
GIT: 分支的新建与合并 https://git-scm.com/book/zh/v2/Git-分支-分支的新建与合并 分支的管理 https://git-scm.com/book/zh/v1/Gi ...