public class Fragment02 extends Fragment implements XListView.IXListViewListener { String url="http://api.expoon.com/AppNews/getNewsList/type/1/p/1"; List<Product.DataBean> list=new ArrayList<>(); private ImageLoader instance; private MAdapter mAdapter; private XListView xlistview; int page; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=View.inflate(getActivity(), R.layout.activity_fragment02,null); xlistview = (XListView) view.findViewById(R.id.xlistview); instance = ImageLoader.getInstance(); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initData(0); mAdapter =new MAdapter(); xlistview.setAdapter(mAdapter); xlistview.setPullLoadEnable(true); xlistview.setXListViewListener(this);//xlistview上下拉監聽。。。必須有 } private void initData(int page) { new MAsyncTask().execute(url+page); } //下拉刷新 @Override public void onRefresh() { list.clear(); initData(0); } //上拉加載 @Override public void onLoadMore() { page++; initData(page); } private class MAdapter extends BaseAdapter{ @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { return position%2; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int viewType=getItemViewType(i); switch (viewType){ case 0: ViewHolder viewHolder=null; if(view==null){ viewHolder=new ViewHolder(); view=View.inflate(getActivity(),R.layout.item,null); viewHolder.textview=(TextView)view.findViewById(R.id.textview); viewHolder.imageView=(ImageView)view.findViewById(R.id.imageview); view.setTag(viewHolder); }else{ viewHolder= (ViewHolder) view.getTag(); } viewHolder.textview.setText(list.get(i).getNews_title()); instance.displayImage(list.get(i).getPic_url(),viewHolder.imageView); break; case 1: ViewHolder1 viewHolder1=null; if(view==null){ viewHolder1=new ViewHolder1(); view=View.inflate(getActivity(),R.layout.item1,null); viewHolder1.textView1=(TextView)view.findViewById(R.id.textView1); viewHolder1.textView2=(TextView)view.findViewById(R.id.textView2); view.setTag(viewHolder1); }else{ viewHolder1= (ViewHolder1) view.getTag(); } viewHolder1.textView1.setText(list.get(i).getNews_title()); viewHolder1.textView2.setText(list.get(i).getNews_summary()); break; } return view; } } private class MAsyncTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { return NetUtil.getNetJson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Product product = gson.fromJson(s, Product.class); List<Product.DataBean> data = product.getData(); list.addAll(data); mAdapter.notifyDataSetChanged(); uicomplete();//停止刷新的方法 } } private void uicomplete() { xlistview.stopRefresh(); xlistview.stopLoadMore(); xlistview.setRefreshTime("剛剛"+System.currentTimeMillis()); } private class ViewHolder { TextView textview; ImageView imageView; } private class ViewHolder1{ TextView textView1; TextView textView2; } }
xlistview+多條目+imageLoader的綜合應用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.