项目中点击imageview显示popupWindow,删除,退出等
2017-08-15 10:48
393 查看
适配器 public class MyBase extends BaseAdapter { Context context; List<InfoUtils.ResultBean.BookListBean> list; private final LayoutInflater inflater; private PopupWindow popwindow; private View viewpop; private PopupWindow popupWindow; private TextView delete; private ImageView colse; public MyBase(Context context, List<InfoUtils.ResultBean.BookListBean> list) { this.context = context; this.list = list; inflater = LayoutInflater.from(context); initpop(); } public void add(Context context, List<InfoUtils.ResultBean.BookListBean> list1,boolean flag){ for (InfoUtils.ResultBean.BookListBean bean: list1) { if (flag){ list.add(0,bean); }else { list.add(bean); } } } @Override public int getCount() { return list!=null?list.size():0; } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView==null){ holder = new ViewHolder(); convertView = inflater.inflate(R.layout.fragment_layout,null); holder.name = (TextView) convertView.findViewById(R.id.text_view1); holder.type = (TextView) convertView.findViewById(R.id.text_view2); holder.area = (TextView) convertView.findViewById(R.id.text_view3); holder.image = (ImageView) convertView.findViewById(R.id.image_view); holder.more = (ImageView) convertView.findViewById(pop); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } holder.name.setText(list.get(position).getName()); holder.type.setText(list.get(position).getType()); holder.area.setText(list.get(position).getArea()); holder.more.setOnClickListener(new Popaction(position)); x.image().bind(holder.image,list.get(position).getCoverImg()); return convertView; } class Popaction implements View.OnClickListener{ private int position; public Popaction(int position) { this.position = position; } @Override public void onClick(View v) { int[] array = new int[2]; v.getLocationOnScreen(array); int x = array[0]; int y = array[1]; showpop(v,position,x,y); } } public void initpop(){ viewpop = inflater.inflate(R.layout.item,null); popupWindow = new PopupWindow(viewpop, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); popupWindow.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#000000"))); delete = (TextView) viewpop.findViewById(R.id.delete_tv); colse = (ImageView) viewpop.findViewById(R.id.close_iv); } public void showpop(View view, final int position, int x, int y){ popupWindow.showAtLocation(view,0,x,y); popupWindow.setFocusable(true); popupWindow.setOutsideTouchable(true); colse.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (popupWindow.isShowing()){ popupWindow.dismiss(); } } }); delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { list.remove(position); notifyDataSetChanged(); if (popupWindow.isShowing()){ popupWindow.dismiss(); } } }); } class ViewHolder{ private TextView name; private TextView type; private TextView area; private ImageView image; private ImageView more; } } Activity
if (base==null){ base = new MyBase(getActivity(),list); xListView.setAdapter(base); }else { base.add(getActivity(),list,flag); base.notifyDataSetChanged(); }
XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:minWidth="220dp" android:minHeight="40dp" android:gravity="center" > <TextView android:text="阅读" android:textColor="#ffffff" android:id="@+id/read_tv" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" /> <TextView android:text="收藏" android:textColor="#ffffff" android:id="@+id/collect_tv" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" /> <TextView android:text="删除" android:textColor="#ffffff" android:id="@+id/delete_tv" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" /> <ImageView android:src="@drawable/close" android:id="@+id/close_iv" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" /> </LinearLayout>
相关文章推荐
- android 如何让PopupWindow显示在ImageView的下方
- 点击listview中的imageview实现拍照然后显示
- PopupWindow封装-view上方显示和下方显示
- PopUpWindow显示在某个View之上,同时使用动画
- 设置popupWindow显示位置以及点击其他位置取消弹出
- ListView中ImageView 点击显示在 Toast 上
- android ImageView实现图片浏览器(点击左侧显示上一张,点击右侧显示下一张)
- Android 在ViewPager中使用的可以画线,放大,保存,点击删除线条的自定义图片显示控件
- 如何用数据驱动实现通用化巡检APP(如何一个界面里添加多个点击拍照按钮并显示在不同的imageview里)
- popupwindow上使用spinner,能显示,但当点击spinner时出现异常
- android中webview显示网页、进度条显示进度、上一页、下一页、支持放大缩小、返回按钮2秒两次点击退出应用
- 关于PopupWindow点击不同按钮显示不同pop的解决
- 如何实现点击GridView中一个图片后,如何传递至一个新的Activity中的imageview里面显示?
- windows开始菜单和任务栏图标显示空白并且点击时候显示项目已被移动或删除
- 让popupwindow显示在view的上方并与该view水平居中对齐
- windows開始菜单和任务栏图标显示空白而且点击时候显示项目已被移动或删除
- 响应鼠标点击的代码实现了在单独线程中下载图片并在ImageView显示
- 点击显示一个样式自定义的Popupwindow
- 【android】让popupwindow显示在view的上方并与该view水平居中对齐
- Android实现点击ImageView拍照,并将相机拍摄的图片显示在ImageView上