//关联library文件
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_below="@id/tabPageIndicator"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</android.support.v4.view.ViewPager>
/mainActivity中添加Fragment,并传值
package com.example.viewpager;
import java.util.ArrayList;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import com.example.viewpager.adapter.MyPagerAdapter;
import com.viewpagerindicator.TabPageIndicator;
public class MainActivity extends FragmentActivity {
private static String[] TITLE = new String[] { "社会", "健康", "娱乐", "图片",
"科技", "汽车", "财经", "军事", "国际", "房产" };
private String[] PATH = new String[] {
"网络地址" };
private ArrayList<Fragment> list_f;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
TabPageIndicator tab = (TabPageIndicator) findViewById(R.id.tabPageIndicator);
addFragment();
viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(),list_f,TITLE));
tab.setViewPager(viewPager);
}
private void addFragment() {
list_f = new ArrayList<Fragment>();
for (int i = 0; i < TITLE.length; i++) {
MyFragment myFragment=new MyFragment();
Bundle bundle=new Bundle();
bundle.putString("path", PATH[i]);
myFragment.setArguments(bundle);
list_f.add(myFragment);
}
}
}
/
给ViewPager设置适配器
package com.example.viewpager.adapter;
import java.util.ArrayList;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.View;
public class MyPagerAdapter extends FragmentPagerAdapter {
private ArrayList<Fragment> list_f;
private String[] TITLE;
public MyPagerAdapter(FragmentManager fm, ArrayList<Fragment> list_f, String[] TITLE) {
super(fm);
// TODO Auto-generated constructor stub
this.list_f = list_f;
this.TITLE = TITLE;
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return list_f.get(arg0);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list_f.size();
}
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return TITLE[position];
}
}
/
复制 ImageLoader 中需要的MyApplication文件
清单文件 中application
android:name=”…………………………………………”
设置Values 中的styles
清单文件 中activity
设置 android:theme=”@style/StyledIndicators”
还有联网请求
//Fragment中请求网络解析数据加载到XListView
package com.example.viewpager;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.viewpager.XListView.IXListViewListener;
import com.example.viewpager.adapter.Bean;
import com.example.viewpager.adapter.MyAdapter;
import com.google.gson.Gson;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
public class MyFragment extends Fragment implements IXListViewListener {
private MyAdapter myAdapter;
private View view;
private XListView xListView;
private String path;
private static final int REFRESH=1;
private static final int LOADMORE=2;
private static final int INIT=3;
private String time;
private ArrayList<Bean.Data> list=new ArrayList<Bean.Data>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = View.inflate(getActivity(), R.layout.fragment, null);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
xListView = (XListView) view.findViewById(R.id.xlistView);
//激活上拉加载更多
xListView.setPullLoadEnable(true);
//xlistView监听事件
xListView.setXListViewListener(this);
Bundle bundle = getArguments();
path = bundle.getString("path");
parseData(INIT);
}
private void parseData(final int tag) {
HttpUtils httpUtils=new HttpUtils();
httpUtils.configCurrentHttpCacheExpiry(0);
httpUtils.send(HttpMethod.GET, path, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
String result = arg0.result;
Gson gson=new Gson();
Bean bean = gson.fromJson(result, Bean.class);
switch (tag) {
case INIT:
list.addAll(bean.data);
myAdapter = new MyAdapter(getActivity(),list);
xListView.setAdapter(myAdapter);
break;
case LOADMORE:
list.addAll(bean.data);
myAdapter.notifyDataSetChanged();
xListView.stopLoadMore();
break;
case REFRESH:
list.clear();
list.addAll(bean.data);
myAdapter.notifyDataSetChanged();
xListView.stopRefresh();
xListView.setRefreshTime(time);
time=getTime();
break;
}
}
});
}
@Override
public void onRefresh() {
parseData(REFRESH);
}
@Override
public void onLoadMore() {
parseData(LOADMORE);
}
public String getTime(){
SimpleDateFormat format=new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
Date date = new Date(System.currentTimeMillis());
String string = format.format(date);
return string;
}
}
//
复制XListView,XListViewFooter,XListViewHeader文件
复制XListViewFooter,XListViewHeader布局文件
复制XListView图片
给XListView设置适配器
package com.example.viewpager.adapter;
import java.util.ArrayList;
import com.example.viewpager.R;
import com.example.viewpager.adapter.Bean.Data;
import com.nostra13.universalimageloader.core.ImageLoader;
import android.content.Context;
import android.graphics.Color;
import android.support.v4.app.FragmentActivity;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter {
private ArrayList<Data> list;
private Context context;
private Data data;
public MyAdapter(Context context, ArrayList<Data> list) {
this.context = context;
this.list = list;
// TODO Auto-generated constructor stub
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int i = getItemViewType(position);
ViewHolder0 viewHolder0 = null;
ViewHolder1 viewHolder1 = null;
ViewHolder2 viewHolder2 = null;
ViewHolder3 viewHolder3 = null;
if (convertView == null) {
switch (i) {
case 0:
convertView=View.inflate(context, R.layout.large_image, null);
viewHolder0 =new ViewHolder0();
viewHolder0.textView=(TextView) convertView.findViewById(R.id.textView1_large_image);
viewHolder0.textView1=(TextView) convertView.findViewById(R.id.textView2_large_image);
viewHolder0.textView2=(TextView) convertView.findViewById(R.id.textView3_large_image);
viewHolder0.imageView=(ImageView) convertView.findViewById(R.id.imageView1_large_image);
convertView.setTag(viewHolder0);
break;
case 1:
convertView=View.inflate(context, R.layout.middle_image, null);
viewHolder1 =new ViewHolder1();
viewHolder1.textView=(TextView) convertView.findViewById(R.id.textView1_middle_image);
viewHolder1.textView1=(TextView) convertView.findViewById(R.id.textView2_middle_image);
viewHolder1.textView2=(TextView) convertView.findViewById(R.id.textView3_middle_image);
viewHolder1.imageView=(ImageView) convertView.findViewById(R.id.imageView1_middle_image);
convertView.setTag(viewHolder1);
break;
case 2:
convertView=View.inflate(context, R.layout.image_list, null);
viewHolder2 =new ViewHolder2();
viewHolder2.textView=(TextView) convertView.findViewById(R.id.textView1_image_list);
viewHolder2.textView1=(TextView) convertView.findViewById(R.id.textView2_image_list);
viewHolder2.textView2=(TextView) convertView.findViewById(R.id.textView3_image_list);
viewHolder2.imageView1=(ImageView) convertView.findViewById(R.id.ImageView01_image_list);
viewHolder2.imageView2=(ImageView) convertView.findViewById(R.id.ImageView02_image_list);
viewHolder2.imageView3=(ImageView) convertView.findViewById(R.id.imageView03_image_list);
convertView.setTag(viewHolder2);
break;
case 3:
convertView=View.inflate(context, R.layout.data_item, null);
viewHolder3 =new ViewHolder3();
viewHolder3.textView=(TextView) convertView.findViewById(R.id.textView1_data_item);
viewHolder3.textView1=(TextView) convertView.findViewById(R.id.textView2_data_item);
viewHolder3.textView2=(TextView) convertView.findViewById(R.id.textView3_data_item);
convertView.setTag(viewHolder3);
break;
}
}else{
switch (i) {
case 0:
viewHolder0=(ViewHolder0) convertView.getTag();
break;
case 1:
viewHolder1=(ViewHolder1) convertView.getTag();
break;
case 2:
viewHolder2=(ViewHolder2) convertView.getTag();
break;
case 3:
viewHolder3=(ViewHolder3) convertView.getTag();
break;
}
}
赋值
ImageLoader imageLoader=ImageLoader.getInstance();
Data da=list.get(position);
switch (i) {
case 0:
viewHolder0.textView.setText(da.title);
viewHolder0.textView1.setText(da.source+"\t");
viewHolder0.textView1.setTextColor(Color.GRAY);
viewHolder0.textView2.setText("评论"+"\t"+da.comment_count);
viewHolder0.textView2.setTextColor(Color.GRAY);
if(data.large_image_list.size()!=0){
imageLoader.displayImage(da.large_image_list.get(0).url, viewHolder0.imageView);
}
break;
case 1:
viewHolder1.textView.setText(da.title);
viewHolder1.textView1.setText(da.source+"\t");
viewHolder1.textView1.setTextColor(Color.GRAY);
viewHolder1.textView2.setText("评论"+"\t"+da.comment_count);
viewHolder1.textView2.setTextColor(Color.GRAY);
imageLoader.displayImage(da.middle_image.url, viewHolder1.imageView);
break;
case 2:
viewHolder2.textView.setText(list.get(position).title);
viewHolder2.textView1.setText(list.get(position).source+"\t");
viewHolder2.textView1.setTextColor(Color.GRAY);
viewHolder2.textView2.setText("评论"+"\t"+list.get(position).comment_count);
viewHolder2.textView2.setTextColor(Color.GRAY);
imageLoader.displayImage(list.get(position).image_list.get(0).url, viewHolder2.imageView1);
imageLoader.displayImage(list.get(position).image_list.get(1).url, viewHolder2.imageView2);
imageLoader.displayImage(list.get(position).image_list.get(2).url, viewHolder2.imageView3);
break;
case 3:
viewHolder3.textView.setText(da.title);
viewHolder3.textView1.setText(da.source+"\t");
viewHolder3.textView1.setTextColor(Color.GRAY);
viewHolder3.textView2.setText("评论"+"\t"+da.comment_count);
viewHolder3.textView2.setTextColor(Color.GRAY);
break;
}
return convertView;
}
@Override
public int getItemViewType(int position) {
data = list.get(position);
if (data.large_image_list != null) {
return 0;
}
if (data.middle_image != null
&& !TextUtils.isEmpty(data.middle_image.url)
&& data.image_list.size() == 0) {
return 1;
}
if (data.image_list != null && data.image_list.size() == 3) {
return 2;
}
return 3;
}
@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 4;
}
class ViewHolder0 {
TextView textView;
TextView textView1;
TextView textView2;
ImageView imageView;
}
class ViewHolder1 {
TextView textView;
TextView textView1;
TextView textView2;
ImageView imageView;
}
class ViewHolder2 {
TextView textView;
TextView textView1;
TextView textView2;
ImageView imageView1;
ImageView imageView2;
ImageView imageView3;
}
class ViewHolder3 {
TextView textView;
TextView textView1;
TextView textView2;
}
}
/
Bean文件
package com.example.viewpager.adapter;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.annotations.SerializedName;
public class Bean {
public ArrayList<Data> data;
public class Data {
public String display_url;// 点击跳转页面的网址
public String comment_count;// 评论数
public String source;// 来自哪的新闻资源
public Middle_image middle_image;
public List<LargeImageList> large_image_list;
public String has_image;// 是否有图
public String gallary_image_count;
public ArrayList<Image> image_list;
public String title;
public String share_url;
@SerializedName("abstract")
public String ast;
public class Middle_image {
public String url;
}
public class Image {
public String url;
}
public class LargeImageList {
public String url;
}
public class Url_list {
public String url;
}
}
}