XListView多条目加载+TabPageIndicator+下拉刷新上拉加载

//
关联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;
    }



}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值