前几天写了点击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)的更多相关文章

  1. 【Android基础】listview控件的使用(3)------Map与SimpleAdapter组成的多显示条目的Listview

    前面介绍的两种listview的使用都是最基础的,所以有很大的局限性,比如只能在一个item(即每一行的条目)中显示一个文本信息,这一篇我将介绍Map与SimpleAdapter组成的多显示条目的Li ...

  2. flutter ListView嵌套高度问题

    ListView嵌套时高度无法自适应,需要设置高度才可以显示,设置以下属性可以解决上述问题 shrinkWrap: true, physics: NeverScrollableScrollPhysic ...

  3. listview嵌套gridview,并实现grid元素部分显示以及点击展开与折叠

    原文链接:http://blog.csdn.net/duguju/article/details/49538341 有时我们需要用GridView显示目录列表,有时甚至是二级的,即listview每一 ...

  4. ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多

    ScrollView 效果 ScrollView 说明 一个ScrollView 嵌套ListView 嵌套GridView的上拉加载更多,下拉刷新的demo. 主要是重写了GridView和Lsit ...

  5. Android中ListView嵌套GridView的简单消息流UI(解决宽高问题)

    最近搞一个项目,需要用到类似于新浪微博的消息流,即每一项有文字.有九宫格图片,因此这就涉及到ListView或者ScrollView嵌套GridView的问题.其中GridView的高度问题在网上都很 ...

  6. ListView嵌套GridView

    首先,我们通过两个实例来了解下本篇文章所讲的重点,看下图: 微博: 陌陌: 大家应该对这两款软件并不陌生,接下来,我将列举下本文将要实现的几个点: 1.ListView嵌套GridView,互不冲突, ...

  7. 【Android】listview 嵌套gridview报错,代码:”during second layout pass: posting in next frame

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, QQ986945193 公众号:程序员小冰 说明:本人曾经在listview嵌套gridview出现 ...

  8. android listView嵌套gridview的使用心得

    在开发的过程中可能需要用到listview嵌套gridview的场景,但是在Android中, 不能在一个拥有Scrollbar的组件中嵌入另一个拥有Scrollbar的组件,因为这不科学,会混淆滑动 ...

  9. ListView嵌套GridView,显示不全解决办法

    ListView嵌套GridView时,遇到了GridView只显示一行,其余都显示不出来的问题,最终解决办法如下: 需要自定义GridView,重新绘制高度即可: public class MyGr ...

随机推荐

  1. php回传ajax数据

    <?php $json_width = $_POST["img_width"]; $json_height = $_POST["img_height"]; ...

  2. GitHub使用指导

    GitHub 用过Git的小伙伴想必都知道GitHub是个什么东东,我这里就简单介绍一下吧.Git是一个分布式的版本控制系统,而GitHub可以托管各种Git库,并提供一个Web界面,方便查看Git库 ...

  3. Yii2.0 多条件搜索 带分页

                                   方法一   在控制器中 ; if($titles!=""){ $where.=" and title lik ...

  4. IOS 第三方库之-MBProgressHUD的使用详解

    转自作者: weidfyr  http://www.aiuxian.com/article/p-3121607.html 1,MBProgressHUD常用属性和用法Demo - (void)test ...

  5. HttpUtil工具类

    HttpUtil工具类 /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param params * 请求参数,请求参数应该是name1=val ...

  6. mysql出现Can't connect to MySQL server on 'localhost' (10061)的解决方法

    网上搜索的一: 今天把mysql数据库拷贝到另外一台机上,结果连不上,报“Can't connect to MySQL server on 'localhost' (10061)“错误 到网上sear ...

  7. document.domain的修改问题

    有时候,需要修改document.domain. 典型的情形:http://a.xxx.com/A.htm 的主页面有一个<iframe src="http://b.xxx.com/B ...

  8. ice使用过程遇到的问题

    1 设置代理超时时间ice_timeout ICE的每个连接都有两个超时时间:ice_timeout.ice_connectiontimeout,分别对应消息的超时时间和连接建立    的超时时间,可 ...

  9. how to use tar?

    In UNIX, tar is the most useful tool to compress files (just like zip in Windows.) To compress, inpu ...

  10. 远程连接(ssh安装)

    更新源列表打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"--& ...