在adapter中实现点击图片,显示dialog public HomeMsgAdapter(Context context,List<HomeMsgBean> list){
来源:互联网 发布:淘宝联盟分享赚任务 编辑:程序博客网 时间:2024/06/04 18:16
第一步,首先确定在dialog中的布局文件
第二步:在adapter的构造函数中编写view,和dialog,因为这样面对所有类型的文件,都可以直接用构造函数创建的对象,提高性能
第三部:创建dialog中的布局文件的各个控件的实例对象
第四部:在控件的点击事件中,显示dialog,并且实现相应的操作,比如在dialog上面显示图片等等
下面为adapter中的代码:
public HomeMsgAdapter(Context context,List<HomeMsgBean> list){ this.list=list; mInflater = LayoutInflater.from(context);// //将以前的实例化对象,放到这里来实现,之后对各个控件的赋值实例化都不是现在getView()函数中// View view = mInflater.inflate(R.layout.msg_write_layout, null); /** * 在Adapter中实现点击图片,可以实现放大缩小图片的功能,就可以将对象实例化放在构造函数中,代码如下 */ View view=mInflater.inflate(R.layout.weibo_img_dlg,null); dialog=new Dialog(context,R.style.simple_dialog); dialog.setContentView(view); /** * 实例化dialog中控件对象 */ imgView = (ImageView) view.findViewById(R.id.img_weibo_img); pb = (ProgressBar) view.findViewById(R.id.progress_wbimg_load); btnBig = (Button) view.findViewById(R.id.btn_big); }
然后在imageview中实现点击事件:
holder.commont_head.setImageResource(list.get(position).getCommont());
holder.commont_head.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imgView.setImageResource(list.get(position).getCommont()); dialog.show(); }});
整个页面的源代码:
package Adapter;import android.app.Dialog;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.TextView;import java.util.List;import Bean.HomeMsgBean;import app.coolweather.com.weibo.R;import imgCache.SimpleImageLoader;/**用于 * Created by Administrator on 2016/9/4. *十八章的重点:将超链接转换成不是超链接的数据,并且解析,得到你想要的数据 * holder.txt_wb_item_from.setMovementMethod(LinkMovementMethod.getInstance()); 这句话表示能不能实现listview中控件的点击 * holder.txt_wb_item_from.setText("来着:"+Html.fromHtml(s.getSource())); */public class HomeMsgAdapter extends BaseAdapter { private List<HomeMsgBean> list; //将数据放入Adapter中 private LayoutInflater mInflater; private Dialog dialog; public ImageView imgView; public ProgressBar pb; public Button btnBig; public HomeMsgAdapter(Context context,List<HomeMsgBean> list){ this.list=list; mInflater = LayoutInflater.from(context);// //将以前的实例化对象,放到这里来实现,之后对各个控件的赋值实例化都不是现在getView()函数中// View view = mInflater.inflate(R.layout.msg_write_layout, null); /** * 在Adapter中实现点击图片,可以实现放大缩小图片的功能,就可以将对象实例化放在构造函数中,代码如下 */ View view=mInflater.inflate(R.layout.weibo_img_dlg,null); dialog=new Dialog(context,R.style.simple_dialog); dialog.setContentView(view); /** * 实例化dialog中控件对象 */ imgView = (ImageView) view.findViewById(R.id.img_weibo_img); pb = (ProgressBar) view.findViewById(R.id.progress_wbimg_load); btnBig = (Button) view.findViewById(R.id.btn_big); } @Override public int getCount() { return list==null?0:list.size(); } @Override public Object getItem(int position) { return list==null?null:list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) {// View view = convertView;// if(view==null){// Holder holder=new Holder();// view = LayoutInflater.from(context).inflate(R.layout.msg_write_layout, null);//加载布局文件,该布局文件为listview中的文件,返回v对象,即自己的模板文件// //创建对象// holder.user_content_textView= (TextView) view.findViewById(R.id.user_content);// holder.user_head= (ImageView) view.findViewById(R.id.user_head);// holder.commont_head=(ImageView)view.findViewById(R.id.user_head_one);// holder.user_time=(TextView)view.findViewById(R.id.time_put);// holder.commont_child=(TextView)view.findViewById(R.id.user_content_one);// holder.commont_head_two=(ImageView)view.findViewById(R.id.user_head_two);// //给各个对象赋值// holder.user_content_textView.setText(list.get(position).getName());// holder.user_head.setImageResource(list.get(position).getHead()); //setImageResource()中间填写R.drawable.picture// holder.commont_head.setImageResource(list.get(position).getCommont());// holder.user_time.setText(list.get(position).getContent());// holder.commont_child.setText(list.get(position).getContent_child());// holder.commont_head_two.setImageResource(list.get(position).getCommont_head()); //setImageResource()中间填写R.drawable.picture//// } return createViewFromResource(position,convertView); } private View createViewFromResource(int position, View convertView) { View v; if (convertView == null) { v = mInflater.inflate(R.layout.msg_write_layout, null); } else { v = convertView; } bindView(position, v); return v; } private void bindView(final int position,View view){ Holder holder=new Holder(); holder.user_content_textView= (TextView) view.findViewById(R.id.user_content); holder.user_head= (ImageView) view.findViewById(R.id.user_head); holder.commont_head=(ImageView)view.findViewById(R.id.user_head_one); holder.user_time=(TextView)view.findViewById(R.id.time_put); holder.commont_child=(TextView)view.findViewById(R.id.user_content_one); holder.commont_head_two=(ImageView)view.findViewById(R.id.user_head_two); //给各个对象赋值 holder.user_content_textView.setText(list.get(position).getName()); // holder.user_head.setImageResource(list.get(position).getHead()); //setImageResource()中间填写R.drawable.picture holder.commont_head.setImageResource(list.get(position).getCommont()); holder.user_time.setText(list.get(position).getContent()); holder.commont_child.setText(list.get(position).getContent_child()); holder.commont_head_two.setImageResource(list.get(position).getCommont_head()); //setImageResource()中间填写R.drawable.picture SimpleImageLoader.showImg(holder.user_head,"http://image6.huangye88.com/2013/07/26/370d6cd0c79c4269.jpg"); holder.commont_head.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imgView.setImageResource(list.get(position).getCommont()); dialog.show(); } }); } //静态类用于声明各个控件的对象,实现性能的优化 private static class Holder{ TextView user_content_textView; ImageView user_head; ImageView commont_head; TextView user_time; TextView commont_child; ImageView commont_head_two; }}
0 0
- 在adapter中实现点击图片,显示dialog public HomeMsgAdapter(Context context,List<HomeMsgBean> list){
- scalar and list context
- Adding custom context menu in classical list
- Learning Perl: 3.7. Scalar and List Context
- Learning Perl: 3.8. in List Context
- Learning Perl: 9.4. m// in List Context
- scalar and list context in Perl
- Dialog中传入context的理解
- public static String getProcessName(Context context) {
- dialog show context 问题
- 在JNI_OnLoad中获得context
- 在Fragment中获取context
- 在Service中获得Context
- 关于API 23 中Fragment的public void onAttach(Context context) 没有被调用的问题
- 28-Dialog点击选择确定,取消,显示在TextView中
- 在UI中显示Forecast list(十一)
- List Dialog
- Android中,Context,什么是Context?
- 人脸识别简史与近期进展
- 串口电平转换
- 判断手机号是否合法(简单判断)
- 记录下sql中的DECLARE关键字的使用
- 类模板中的static关键字
- 在adapter中实现点击图片,显示dialog public HomeMsgAdapter(Context context,List<HomeMsgBean> list){
- iOS10 推送必看(基础篇)
- 在Asp.net MVC项目中GridView使用
- 日常潜水-20160927-安装PHP-mcrypt模块(神坑)
- LINUX下ADC按键驱动程序
- mac iconv 文件字符转码
- Redis操作List工具类封装,Java Redis List命令封装
- UNIQUE等于普通索引吗?
- Linux du命令和df命令区别