适配器
package com.guo.adapter;
import java.util.List;
import com.guo.activity.R;
import com.guo.bean.DataBean;
import com.guo.bean.ImageList;
import com.guo.bean.LargeImageList;
import com.nostra13.universalimageloader.core.ImageLoader;
import android.annotation.SuppressLint;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class XlistviewAdapter extends BaseAdapter {
private Context context;
List<DataBean> list;
private ImageLoader imageLoader;
public XlistviewAdapter(Context context, List<DataBean> list) {
super();
this.context = context;
this.list = list;
imageLoader = ImageLoader.getInstance();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@SuppressLint("CutPasteId") @Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
ViewHolder0 holder0;
ViewHolder1 holder1;
ViewHolder2 holder2;
ViewHolder3 holder3;
switch (type) {
case 0:
if(convertView==null){
holder0=new ViewHolder0();
convertView=View.inflate(context, R.layout.item0, null);
holder0.textView=(TextView) convertView.findViewById(R.id.title);
holder0.imageView=(ImageView) convertView.findViewById(R.id.imageView_0);
convertView.setTag(holder0);
}else{
holder0=(ViewHolder0) convertView.getTag();
}
holder0.textView.setText(list.get(position).title);
ImageView image=holder0.imageView;
Log.e("一张", list.get(position).image_list.get(0).url);
imageLoader.displayImage(list.get(position).image_list.get(0).url, image);
break;
case 1:
if(convertView==null){
holder1=new ViewHolder1();
convertView=View.inflate(context, R.layout.item1, null);
holder1.textView=(TextView) convertView.findViewById(R.id.title);
holder1.imageView1=(ImageView) convertView.findViewById(R.id.imageView_0);
holder1.imageView2=(ImageView) convertView.findViewById(R.id.imageView_1);
holder1.imageView3=(ImageView) convertView.findViewById(R.id.imageView_2);
convertView.setTag(holder1);
}else{
holder1=(ViewHolder1) convertView.getTag();
}
holder1.textView.setText(list.get(position).title);
ImageView image0=holder1.imageView1;
ImageView image1=holder1.imageView2;
ImageView image2=holder1.imageView3;
imageLoader.displayImage(list.get(position).image_list.get(0).url, image0);
imageLoader.displayImage(list.get(position).image_list.get(1).url, image1);
imageLoader.displayImage(list.get(position).image_list.get(2).url, image2);
break;
case 2:
if(convertView==null){
holder2=new ViewHolder2();
convertView=View.inflate(context, R.layout.item2, null);
holder2.textView=(TextView) convertView.findViewById(R.id.title);
holder2.imageView=(ImageView) convertView.findViewById(R.id.imageView_0);
convertView.setTag(holder2);
}else{
holder2=(ViewHolder2) convertView.getTag();
}
holder2.textView.setText(list.get(position).title);
ImageView image4=holder2.imageView;
imageLoader.displayImage(list.get(position).large_image_list.get(0).url, image4);
break;
case 3:
if(convertView==null){
holder3=new ViewHolder3();
convertView=View.inflate(context, R.layout.item0, null);
holder3.textView=(TextView) convertView.findViewById(R.id.title);
convertView.setTag(holder3);
}else{
holder3=(ViewHolder3) convertView.getTag();
}
holder3.textView.setText(list.get(position).title);
break;
}
return convertView;
}
@Override
// 设置条目类型总数
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 4;
}
@Override
// 获取当前条目类型
public int getItemViewType(int position) {
List<ImageList> imagelist = list.get(position).image_list;
List<LargeImageList> largeImageList = list.get(position).large_image_list;
// 加载一张图片布局
if (imagelist != null && imagelist.size() == 1) {
return 0;
// // 加载三张图片布局
} else if (imagelist != null && imagelist.size() == 3) {
return 1;
} else if (largeImageList != null && largeImageList.size() == 1) {
// 加载一张图片布局(大图)
return 2;
} else {
// 没有图片布局
return 3;
}
}
class ViewHolder0{
TextView textView;
ImageView imageView;
}
class ViewHolder1{
TextView textView;
ImageView imageView1;
ImageView imageView2;
ImageView imageView3;
}
class ViewHolder2{
TextView textView;
ImageView imageView;
}
class ViewHolder3{
TextView textView;
}
}
//aplication 图片
package com.guo.application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration.Builder;
import android.app.Application;
public class MyApplication extends Application {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
ImageLoaderConfiguration.Builder builder = new Builder(
getApplicationContext());
ImageLoaderConfiguration configuration = builder.build();
ImageLoader.getInstance().init(configuration);
}
}
//设置上拉加载下拉刷新
package com.guo.fragment;
import java.text.SimpleDateFormat;
import java.util.List;
import org.com.cctest.view.XListView;
import org.com.cctest.view.XListView.IXListViewListener;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.gson.Gson;
import com.guo.activity.R;
import com.guo.adapter.XlistviewAdapter;
import com.guo.bean.Data;
import com.guo.bean.DataBean;
import com.guo.http.GetJson;
public class Fragment_title extends Fragment {
private org.com.cctest.view.XListView xListView;
private GetJson gj;
private String Url = "http://ic.snssdk.com/2/article/v25/stream/";
private List<DataBean> datalist;
private XlistviewAdapter adapter;
private String type="";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_title, container, false);
xListView = (XListView) v.findViewById(R.id.xlistview);
gj = new GetJson();
// 设置xlistview 上拉加载,下拉刷新
initxlist();
new Mythread().start();
return v;
}
private void initxlist() {
// 激活加载更多
xListView.setPullLoadEnable(true);
// 激活下拉刷新
xListView.setPullRefreshEnable(true);
// 设置xlistView上拉加载下拉刷新的监听
xListView.setXListViewListener(new IXListViewListener() {
@Override
// 下拉刷新的回调方法
public void onRefresh() {
// 下拉刷新,应该展示最新数据,所以清空集合
datalist.clear();
//再次启动线程
new Mythread().start();
adapter.notifyDataSetChanged();
// 设置刷新时间
xListView.setRefreshTime(dateFormat());
// 停止加载更多
xListView.stopLoadMore();
// 停止刷新
xListView.stopRefresh();
}
@Override
// //上拉加载的回调方法
public void onLoadMore() {
adapter.notifyDataSetChanged();
// 停止加载更多
xListView.stopLoadMore();
// 停止刷新
xListView.stopRefresh();
}
});
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
public void onActivityCreated(Bundle savedInstanceState) {
// 接收头部传过来的参数 标题
Bundle bundle = getArguments();
String ss = bundle.getString("title", "");
if(ss.equals("推荐")){
type="";
}else if(ss.equals("热点")){
type="?category=news_hot";
}else if(ss.equals("奥运会")){
type="?category=%E5%A5%A5%E8%BF%90%E4%BC%9A";
}else if(ss.equals("娱乐")){
type="?category=news_entertainment";
}else if(ss.equals("科技")){
type="?category=news_tech";
}else if(ss.equals("汽车")){
type="?category=news_car";
}
super.onActivityCreated(savedInstanceState);
}
/**
* 格式化毫秒值
*
* @return
*/
@SuppressLint("SimpleDateFormat") private String dateFormat() {
long currentTimeMillis = System.currentTimeMillis();
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");
String format = dateFormat.format(currentTimeMillis);
return format;
}
class Mythread extends Thread {
@Override
public void run() {
super.run();
// 接收请回的数据
String datajson = gj.getjson(Url+type);
Gson gson = new Gson();
Data data = gson.fromJson(datajson, Data.class);
List<DataBean> data2 = data.data;
Message message=new Message();
message.what=1;
message.obj=data2;
handler.sendMessage(message);
}
public Handler handler=new Handler(){
@SuppressWarnings("unchecked")
@SuppressLint("HandlerLeak") public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
datalist = (List<DataBean>) msg.obj;
adapter = new XlistviewAdapter(getActivity(), datalist);
xListView.setAdapter(adapter);
break;
}
};
};
}
}