MyFragment

来源:互联网 发布:2016国内旅游数据 编辑:程序博客网 时间:2024/06/05 10:46
package com.bwie.topnewsnormal;import android.content.Intent;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.webkit.WebView;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.PopupWindow;import android.widget.TextView;import com.bwie.topnewsnormal.bean.NewsInfo;import com.bwie.topnewsnormal.database.NewsDao;import com.google.gson.Gson;import com.limxing.xlistview.view.XListView;import org.xutils.common.Callback;import org.xutils.http.RequestParams;import org.xutils.x;import java.util.List;/** * Created by Shadow on 2017/8/2. */public class MyFragment extends Fragment implements XListView.IXListViewListener {    private String text;    private XListView xlv;    private View view;    private Myadapter myadapter;    int index = 0;    boolean flag;    private PopupWindow popupWindow;    private ImageView closeView;    private TextView deleteView;    private List<NewsInfo.ResultBean.ListBean> list;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view = inflater.inflate(R.layout.myfragment, container, false);        return view;    }    @Override    public void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Bundle arguments = getArguments();        text = arguments.getString("text", "");    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        xlv = (XListView) view.findViewById(R.id.xlv);        xlv.setPullLoadEnable(true);        xlv.setXListViewListener(this);        loadData("http://api.jisuapi.com/news/get", text, index + "");        xlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Intent intent = new Intent(getContext(), WebViewActivity.class);                System.out.println("*************"+position+"传过去的url"+list.get(5).getUrl());                intent.putExtra("newsUrl",list.get(position-1).getUrl());                startActivity(intent);            }        });//头条、新闻、财经、体育、娱乐、军事、教育、科技、NBA、股票、星座、女性、健康、育儿    }    private void loadData(String path, String channel, String page) {        RequestParams requestParams = new RequestParams(path);        requestParams.addBodyParameter("appkey", "cf2efa79d8df0ede");        requestParams.addBodyParameter("start", page);        requestParams.addBodyParameter("num", "15");        requestParams.addBodyParameter("channel", channel);        x.http().post(requestParams, new Callback.CommonCallback<String>() {            @Override            public void onSuccess(String result) {                System.out.println("******************" + result);                NewsInfo newsInfo = new Gson().fromJson(result, NewsInfo.class);                list = newsInfo.getResult().getList();                if (myadapter == null) {                    myadapter = new Myadapter(list);                    xlv.setAdapter(myadapter);                } else {                    myadapter.loadMore(list, flag);                    myadapter.notifyDataSetChanged();                }            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {            }            @Override            public void onCancelled(CancelledException cex) {            }            @Override            public void onFinished() {            }        });    }    @Override    public void onRefresh() {        flag = true;        index++;        loadData("http://api.jisuapi.com/news/get", text, index + "");        xlv.stopRefresh(true);    }    @Override    public void onLoadMore() {        flag = false;        index++;        loadData("http://api.jisuapi.com/news/get", text, index + "");        xlv.stopLoadMore();    }    class Myadapter extends BaseAdapter {        List<NewsInfo.ResultBean.ListBean> list;        public Myadapter(List<NewsInfo.ResultBean.ListBean> list) {            this.list = list;        }        void loadMore(List<NewsInfo.ResultBean.ListBean> list2, boolean flag) {            for (NewsInfo.ResultBean.ListBean bean : list2) {                if (flag) {                    list.add(0, bean);                } else {                    list.add(bean);                }            }        }        @Override        public int getCount() {            return list.size();        }        @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 = null;            if (convertView == null) {                holder = new ViewHolder();                convertView = convertView.inflate(getActivity(), R.layout.item1, null);                holder.imageView = (ImageView) convertView.findViewById(R.id.iv_news);                holder.iv_pop = (ImageView) convertView.findViewById(R.id.iv_pop);                holder.textView = (TextView) convertView.findViewById(R.id.tv_Content);                holder.tv_src = (TextView) convertView.findViewById(R.id.tv_src);                holder.tv_time = (TextView) convertView.findViewById(R.id.tv_time);                convertView.setTag(holder);            } else {                holder = (ViewHolder) convertView.getTag();            }            x.image().bind(holder.imageView, list.get(position).getPic());            holder.tv_src.setText(list.get(position).getSrc());            holder.tv_time.setText(list.get(position).getTime());            holder.textView.setText(list.get(position).getTitle());            holder.iv_pop.setOnClickListener(new IvPopListener(position));            return convertView;        }        class ViewHolder {            ImageView imageView;            ImageView iv_pop;            TextView textView;            TextView tv_src;            TextView tv_time;        }    }    class IvPopListener implements View.OnClickListener {        int position;        public IvPopListener(int position) {            this.position = position;            initPopWindow();        }        @Override        public void onClick(View v) {            int[] array = new int[2];            v.getLocationOnScreen(array);            int x = array[0];            int y = array[1];            showPopWindow(v, position, x, y);        }        void initPopWindow() {            View view = View.inflate(getContext(), R.layout.popupwindow, null);            popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);            //  popupWindow.setAnimationStyle();            popupWindow.setBackgroundDrawable(new ColorDrawable(Color.BLACK));            deleteView = (TextView) view.findViewById(R.id.delete_tv);            closeView = (ImageView) view.findViewById(R.id.close_iv);        }        void showPopWindow(View v, final int position, int x, int y) {            popupWindow.setFocusable(true);            popupWindow.setOutsideTouchable(true);            popupWindow.showAtLocation(v, 0, x, y);            deleteView.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    list.remove(position);                    myadapter.notifyDataSetChanged();                    if (popupWindow.isShowing()) {                        popupWindow.dismiss();                    }                }            });            closeView.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    if (popupWindow.isShowing()) {                        popupWindow.dismiss();                    }                }            });        }    }}