//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>
XlistView多条目加载简单实现2
猜你喜欢
转载自blog.csdn.net/qq_42045179/article/details/81058159
今日推荐
周排行