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(); } } }); } } }
MyFragment
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.