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 ...
随机推荐
- php回传ajax数据
<?php $json_width = $_POST["img_width"]; $json_height = $_POST["img_height"]; ...
- GitHub使用指导
GitHub 用过Git的小伙伴想必都知道GitHub是个什么东东,我这里就简单介绍一下吧.Git是一个分布式的版本控制系统,而GitHub可以托管各种Git库,并提供一个Web界面,方便查看Git库 ...
- Yii2.0 多条件搜索 带分页
方法一 在控制器中 ; if($titles!=""){ $where.=" and title lik ...
- IOS 第三方库之-MBProgressHUD的使用详解
转自作者: weidfyr http://www.aiuxian.com/article/p-3121607.html 1,MBProgressHUD常用属性和用法Demo - (void)test ...
- HttpUtil工具类
HttpUtil工具类 /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param params * 请求参数,请求参数应该是name1=val ...
- mysql出现Can't connect to MySQL server on 'localhost' (10061)的解决方法
网上搜索的一: 今天把mysql数据库拷贝到另外一台机上,结果连不上,报“Can't connect to MySQL server on 'localhost' (10061)“错误 到网上sear ...
- document.domain的修改问题
有时候,需要修改document.domain. 典型的情形:http://a.xxx.com/A.htm 的主页面有一个<iframe src="http://b.xxx.com/B ...
- ice使用过程遇到的问题
1 设置代理超时时间ice_timeout ICE的每个连接都有两个超时时间:ice_timeout.ice_connectiontimeout,分别对应消息的超时时间和连接建立 的超时时间,可 ...
- how to use tar?
In UNIX, tar is the most useful tool to compress files (just like zip in Windows.) To compress, inpu ...
- 远程连接(ssh安装)
更新源列表打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"--& ...