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;
}
}