private String json;
private XListView list;
private Myname adapter;
private final static int firstType = 0;
private final static int twoType = 1;
private final static int threeType = 2;
private ArrayList<Data> datas = new ArrayList<Data>();
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (adapter == null) {
adapter = new Myname();
list.setAdapter(adapter);
} else {
adapter = new Myname();
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
};
};
private String path;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.fragment1, null);
list = (XListView) view.findViewById(R.id.lv);
list.setOnItemClickListener(listener);
httpjson();
//acti传递的参数
Bundle bundle=getArguments();
path=bundle.getString("urls");
list.setPullLoadEnable(true);
list.setPullRefreshEnable(true);
list.setXListViewListener(new IXListViewListener() {
@Override
public void onRefresh() {
httpjson();
stopLoadOrRefresh();// 停止加载
}
@Override
public void onLoadMore() {
httpjson();
stopLoadOrRefresh();// 停止加载
}
});
return view;
}
protected void stopLoadOrRefresh() {
list.stopLoadMore();
list.stopRefresh();
list.setRefreshTime("11:15");
}
//传到webview
OnItemClickListener listener=new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Intent intent=new Intent(getActivity(),WebActivity.class);
intent.putExtra("http", datas.get(arg2-1).article_url);
startActivity(intent);
}
};
//解析json
private void httpjson() {
new Thread() {
public void run() {
try {
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(path);
HttpResponse response = client.execute(get);
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
json=EntityUtils.toString(entity);
System.out.println(json.toString());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Gson gson=new Gson();
Tou t=gson.fromJson(json, Tou.class);
datas=t.data;
Message msg=new Message();
msg.obj=datas;
handler.sendMessage(msg);
};
}.start();
}
public class Myname extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return datas.size();
}
@Override
public int getItemViewType(int position) {
Data dt=datas.get(position);
boolean has_image = dt.has_image;
if (has_image == false) {
return 0;
}
if (has_image && dt.image_list.size() == 3) {
return 2;
} else {
return 1;
}
}
@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 3;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View coverView, ViewGroup arg2) {
ViewHolder1 holder1=null;
ViewHolder2 holder2=null;
ViewHolder3 holder3=null;
int type=getItemViewType(position);
Data dt=datas.get(position);
if(coverView==null){
switch (type) {
case firstType:
coverView=View.inflate(getActivity(), R.layout.firsttype, null);
holder1=new ViewHolder1();
holder1.title=(TextView) coverView.findViewById(R.id.title);
holder1.media_name=(TextView) coverView.findViewById(R.id.media_name);
coverView.setTag(holder1);
break;
case twoType:
coverView=View.inflate(getActivity(), R.layout.twotype, null);
holder2=new ViewHolder2();
holder2.title2=(TextView) coverView.findViewById(R.id.title2);
holder2.media_name2=(TextView) coverView.findViewById(R.id.media_name2);
holder2.middle_image=(ImageView) coverView.findViewById(R.id.middle_image);
coverView.setTag(holder2);
break;
case threeType:
coverView=View.inflate(getActivity(), R.layout.threetype, null);
holder3=new ViewHolder3();
holder3.title3=(TextView) coverView.findViewById(R.id.title3);
holder3.lv1=(ImageView) coverView.findViewById(R.id.lv1);
holder3.lv2=(ImageView) coverView.findViewById(R.id.lv2);
holder3.lv3=(ImageView) coverView.findViewById(R.id.lv3);
holder3.media=(TextView) coverView.findViewById(R.id.media_name3);
coverView.setTag(holder3);
break;
}
}else{
switch (type) {
case firstType:
holder1=(ViewHolder1) coverView.getTag();
break;
case twoType:
holder2=(ViewHolder2) coverView.getTag();
break;
case threeType:
holder3=(ViewHolder3) coverView.getTag();
break;
}
}
switch (type) {
case firstType:
holder1.title.setText(dt.title);
holder1.media_name.setText(dt.media_name);
break;
case twoType:
holder2.title2.setText(dt.title);
holder2.media_name2.setText(dt.media_name);
ImageLoader.getInstance().displayImage(dt.middle_image.url, holder2.middle_image);
break;
case threeType:
holder3.title3.setText(dt.title);
holder3.media.setText(dt.media_name+"");
ImageLoader.getInstance().displayImage(dt.image_list.get(0).url, holder3.lv1);
ImageLoader.getInstance().displayImage(dt.image_list.get(1).url, holder3.lv2);
ImageLoader.getInstance().displayImage(dt.image_list.get(2).url, holder3.lv3);
break;
}
return coverView;
}
class ViewHolder1{
TextView title;
TextView media_name;
}
class ViewHolder2{
TextView title2;
TextView media_name2;
ImageView middle_image;
}
class ViewHolder3{
TextView title3;
TextView media;
ImageView lv1;
ImageView lv2;
ImageView lv3;
}
}
}
listview不同的item展示
最新推荐文章于 2018-04-26 11:13:41 发布
