MainActivity主页面
package com.bwie.Day11_Demo2.activity; import android.os.Bundle; import android.support.annotation.IdRes; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import android.widget.RadioGroup; import com.bwie.Day11_Demo2.R; import com.bwie.Day11_Demo2.adapter.MyFragmentAdapter; import com.bwie.Day11_Demo2.fragment.fragment1; import com.bwie.Day11_Demo2.fragment.fragment2; import com.bwie.Day11_Demo2.fragment.fragment3; import java.util.ArrayList; import butterknife.ButterKnife; import butterknife.InjectView; public class MainActivity extends FragmentActivity { @InjectView(R.id.viewpage) ViewPager viewpage; @InjectView(R.id.rap) RadioGroup rap; private MyFragmentAdapter fragmentAdapter; private ArrayList<Fragment> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); ArrayList<Fragment> list = new ArrayList<>(); fragment1 fragment1 = new fragment1(); fragment2 fragment2 = new fragment2(); fragment3 fragment3 = new fragment3(); list.add(fragment1); list.add(fragment2); list.add(fragment3); fragmentAdapter = new MyFragmentAdapter(getSupportFragmentManager(), list); viewpage.setAdapter(fragmentAdapter); viewpage.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { rap.check(rap.getChildAt(position).getId()); } @Override public void onPageScrollStateChanged(int state) { } }); rap.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { switch (checkedId) { case R.id.rap1: viewpage.setCurrentItem(0); break; case R.id.rap2: viewpage.setCurrentItem(1); break; case R.id.rap3: viewpage.setCurrentItem(2); break; default: break; } } }); } }
Fragment适配器
package com.bwie.Day11_Demo2.adapter; import android.content.Context; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.PagerAdapter; import android.view.View; import java.util.ArrayList; import java.util.List; /** * Created by McGrady on 2018/7/15. */ public class MyFragmentAdapter extends FragmentPagerAdapter{ private List<Fragment> list; public MyFragmentAdapter(FragmentManager fm, List<Fragment> list) { super(fm); this.list = list; } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } }
MyApp界面
package com.bwie.Day11_Demo2.app; import android.app.Application; import android.content.Context; import com.bwei.imageloaderlibrary.utils.ImageLoaderUtils; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; /** * Created by McGrady on 2018/7/15. */ public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration configuration = ImageLoaderUtils.getConfiguration(this); ImageLoader.getInstance().init(configuration); } }
HttpUtils工具类
package com.bwie.Day11_Demo2.Utils; import android.os.AsyncTask; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import java.io.IOException; /** * Created by McGrady on 2018/7/15. */ public class HttpUtils { private static HttpUtils httpUtils; private httplisten httplisten; public static HttpUtils getInsentace(){ if (httpUtils==null){ httpUtils=new HttpUtils(); } return httpUtils; } public void getData(String url){ MyAsyncTask myAsyncTask = new MyAsyncTask(); myAsyncTask.execute(url); } public class MyAsyncTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... params) { DefaultHttpClient client = new DefaultHttpClient(); String path=params[0]; HttpGet get=new HttpGet(path); try { HttpResponse response = client.execute(get); if (response.getStatusLine().getStatusCode()==200){ HttpEntity entity = response.getEntity(); String s = EntityUtils.toString(entity); return s; } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); httplisten.getJsonData(s); } } public interface httplisten{ public void getJsonData(String json); } public void setHttplisten(HttpUtils.httplisten httplisten) { this.httplisten = httplisten; } }
多页面加载适配器
package com.bwie.Day11_Demo2.adapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.bwei.imageloaderlibrary.utils.ImageLoaderUtils; import com.bwie.Day11_Demo2.R; import com.bwie.Day11_Demo2.bean.Beans; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.List; /** * Created by McGrady on 2018/7/15. */ public class MyListAdapter extends BaseAdapter{ private List<Beans.DataBean> list; private Context context; private final int ONE_ITEM = 0; private final int TWO_ITEM = 1; private final int THREE_ITEM = 2; public MyListAdapter(List<Beans.DataBean> list, Context context) { this.list = list; this.context = context; } @Override public int getItemViewType(int position) { String profile_image = list.get(position).getThumbnail_pic_s(); String bimageuri = list.get(position).getThumbnail_pic_s02(); String image1 = list.get(position).getThumbnail_pic_s03(); if (profile_image !=null && bimageuri == null && image1 == null){ return ONE_ITEM; }else if (profile_image !=null && bimageuri != null && image1 == null){ return TWO_ITEM; }else if (profile_image !=null && bimageuri != null && image1 != null){ return THREE_ITEM; }else { return ONE_ITEM; } } @Override public int getViewTypeCount() { return 3; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { int itemViewType = getItemViewType(position); if (itemViewType == ONE_ITEM){ OneViewHolder oneViewHolder ; if (convertView==null){ oneViewHolder = new OneViewHolder(); convertView = View.inflate(context, R.layout.item01_listview,null); oneViewHolder.item01_profile_image = (ImageView) convertView.findViewById(R.id.item01_url); oneViewHolder.text01 = (TextView) convertView.findViewById(R.id.title01); convertView.setTag(oneViewHolder); }else { oneViewHolder = (OneViewHolder) convertView.getTag(); } DisplayImageOptions options = ImageLoaderUtils.getOptions(); ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),oneViewHolder.item01_profile_image, options); oneViewHolder.text01.setText(list.get(position).getTitle()); return convertView; }else if(itemViewType == TWO_ITEM){ TwoViewHolder twoViewHolder; if (convertView==null){ twoViewHolder = new TwoViewHolder(); convertView = View.inflate(context, R.layout.item02_listview,null); twoViewHolder.item02_profile_image = (ImageView) convertView.findViewById(R.id.item02_url); twoViewHolder.item02_bimageuri = (ImageView) convertView.findViewById(R.id.item02_img); twoViewHolder.text02 = (TextView) convertView.findViewById(R.id.title02); convertView.setTag(twoViewHolder); }else { twoViewHolder = (TwoViewHolder) convertView.getTag(); } DisplayImageOptions options = ImageLoaderUtils.getOptions(); ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),twoViewHolder.item02_profile_image,options); ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),twoViewHolder.item02_bimageuri,options); twoViewHolder.text02.setText(list.get(position).getTitle()); return convertView; }else if (itemViewType == THREE_ITEM){ ThreeViewHolder threeViewHolder; if (convertView==null){ threeViewHolder = new ThreeViewHolder(); convertView = View.inflate(context, R.layout.item03_listview,null); threeViewHolder.item03_profile_image = (ImageView) convertView.findViewById(R.id.item03_url); threeViewHolder.item03_bimageuri = (ImageView) convertView.findViewById(R.id.item03_img); threeViewHolder.item03_image1 = (ImageView) convertView.findViewById(R.id.item03_userImg); threeViewHolder.text03 = (TextView) convertView.findViewById(R.id.title03); convertView.setTag(threeViewHolder); }else { threeViewHolder = (ThreeViewHolder) convertView.getTag(); } DisplayImageOptions options = ImageLoaderUtils.getOptions(); ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),threeViewHolder.item03_profile_image,options); ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),threeViewHolder.item03_bimageuri,options); ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),threeViewHolder.item03_image1,options); threeViewHolder.text03.setText(list.get(position).getTitle()); return convertView; } return null; } class OneViewHolder{ ImageView item01_profile_image; TextView text01; } class TwoViewHolder{ ImageView item02_profile_image,item02_bimageuri; TextView text02; } class ThreeViewHolder{ ImageView item03_profile_image,item03_bimageuri,item03_image1; TextView text03; } }
Fragment1
package com.bwie.Day11_Demo2.fragment; 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 com.bwie.Day11_Demo2.R; import com.bwie.Day11_Demo2.Utils.HttpUtils; import com.bwie.Day11_Demo2.adapter.MyListAdapter; import com.bwie.Day11_Demo2.bean.Beans; import com.bwie.Day11_Demo2.view.XListView; import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; import butterknife.ButterKnife; import butterknife.InjectView; /** * Created by McGrady on 2018/7/15. */ public class fragment1 extends Fragment { @InjectView(R.id.xlistview) XListView xlistview; private String path="http://www.xieast.com/api/news/news.php?page="; private int page=1; private HttpUtils httpUtils=HttpUtils.getInsentace(); private MyListAdapter listAdapter; private List<Beans.DataBean> list=new ArrayList<Beans.DataBean>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment1, container, false); ButterKnife.inject(this, view); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getFromId(); getFromDataNetWork(); } private void getFromDataNetWork() { String url=path+page; httpUtils.getData(url); httpUtils.setHttplisten(new HttpUtils.httplisten() { @Override public void getJsonData(String json) { Gson gson = new Gson(); Beans beans = gson.fromJson(json, Beans.class); List<Beans.DataBean> data = beans.getData(); if (page==1){ list.clear(); } list.addAll(data); listAdapter.notifyDataSetChanged(); if (page==1){ xlistview.stopRefresh(); }else{ xlistview.stopLoadMore(); } } }); } private void getFromId() { xlistview.setPullRefreshEnable(true); xlistview.setPullLoadEnable(true); xlistview.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { page=1; getFromDataNetWork(); } @Override public void onLoadMore() { page+=1; getFromDataNetWork(); } }); listAdapter = new MyListAdapter(list,getActivity()); xlistview.setAdapter(listAdapter); } @Override public void onDestroyView() { super.onDestroyView(); ButterKnife.reset(this); } }
布局文件
item_layout1
package com.bwie.Day11_Demo2.fragment; 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 com.bwie.Day11_Demo2.R; import com.bwie.Day11_Demo2.Utils.HttpUtils; import com.bwie.Day11_Demo2.adapter.MyListAdapter; import com.bwie.Day11_Demo2.bean.Beans; import com.bwie.Day11_Demo2.view.XListView; import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; import butterknife.ButterKnife; import butterknife.InjectView; /** * Created by McGrady on 2018/7/15. */ public class fragment1 extends Fragment { @InjectView(R.id.xlistview) XListView xlistview; private String path="http://www.xieast.com/api/news/news.php?page="; private int page=1; private HttpUtils httpUtils=HttpUtils.getInsentace(); private MyListAdapter listAdapter; private List<Beans.DataBean> list=new ArrayList<Beans.DataBean>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment1, container, false); ButterKnife.inject(this, view); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getFromId(); getFromDataNetWork(); } private void getFromDataNetWork() { String url=path+page; httpUtils.getData(url); httpUtils.setHttplisten(new HttpUtils.httplisten() { @Override public void getJsonData(String json) { Gson gson = new Gson(); Beans beans = gson.fromJson(json, Beans.class); List<Beans.DataBean> data = beans.getData(); if (page==1){ list.clear(); } list.addAll(data); listAdapter.notifyDataSetChanged(); if (page==1){ xlistview.stopRefresh(); }else{ xlistview.stopLoadMore(); } } }); } private void getFromId() { xlistview.setPullRefreshEnable(true); xlistview.setPullLoadEnable(true); xlistview.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { page=1; getFromDataNetWork(); } @Override public void onLoadMore() { page+=1; getFromDataNetWork(); } }); listAdapter = new MyListAdapter(list,getActivity()); xlistview.setAdapter(listAdapter); } @Override public void onDestroyView() { super.onDestroyView(); ButterKnife.reset(this); } }
item_layout2
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" > <ImageView android:id="@+id/item02_url" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/item02_img" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <TextView android:id="@+id/title02" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
item_layout3
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" android:orientation="horizontal" > <ImageView android:id="@+id/item03_url" android:layout_width="0dp" android:layout_weight="1" android:layout_height="60dp" /> <ImageView android:id="@+id/item03_img" android:layout_width="0dp" android:layout_weight="1" android:layout_height="60dp" /> <ImageView android:id="@+id/item03_userImg" android:layout_width="0dp" android:layout_weight="1" android:layout_height="60dp" /> </LinearLayout> <TextView android:id="@+id/title03" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" /> </LinearLayout>