//+++++TwoFragment+++++++
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.xlistviewlib.XListView;
import com.google.gson.Gson;
import com.gx.rikao20181016.Adapter.MyAdapter;
import com.gx.rikao20181016.bean.Data;
import com.gx.rikao20181016.utils.NewWorkConnection;
import java.util.List;
public class TwoFragment extends Fragment {
private XListView xListView;
String path="http://172.17.8.100/mobile/exam/findNewList";
private MyAdapter myAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_two, container, false);
//找控件
xListView = inflate.findViewById(R.id.xlistview);
xListView.setPullLoadEnable(true);
xListView.setPullLoadEnable(true);
xListView.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
}
@Override
public void onLoadMore() {
}
});
//创建子线程并且调用方法 返回结果
new Thread(){
@Override
public void run() {
super.run();
//返回的结果字符串
String string = NewWorkConnection.CallBackString(path);
//通过handler传到主线程中解析并且更新IU
Message message=new Message();
message.what=0;
message.obj=string;
handler.sendMessage(message);
}
}.start();
return inflate;
}
@SuppressLint("HandlerLeak")
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 0:
String result1= (String) msg.obj;
//解析
Gson gson=new Gson();
Data data = gson.fromJson(result1, Data.class);
Data.ResultBean result = data.getResult();
List<Data.ResultBean.DataBean> list = result.getData();
myAdapter = new MyAdapter(getActivity(),list);
xListView.setAdapter(myAdapter);
break;
}
}
};
}
//++++++++++++++NewWorkConnection++++++++++++
import com.google.common.io.CharStreams;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class NewWorkConnection {
public static String CallBackString(String s){
try {
URL url=new URL(s);
HttpURLConnection httpURLConnection= (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setConnectTimeout(5000);
httpURLConnection.setReadTimeout(5000);
httpURLConnection.connect();
int responseCode = httpURLConnection.getResponseCode();
if(responseCode==200){
InputStream inputStream = httpURLConnection.getInputStream();
String string = CharStreams.toString(new InputStreamReader(inputStream));
return string;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
//布局
//+++++++++++fragment_two+++++++++++++
<com.example.xlistviewlib.XListView
android:id="@+id/xlistview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.example.xlistviewlib.XListView>
//++++++++++item+++++++++ <?xml version="1.0" encoding="utf-8"?>
<TextView
android:id="@+id/itemtextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="11dp"
android:text="dasdsa "
android:textSize="30dp" />
<ImageView
android:id="@+id/itemimageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="59dp"
app:srcCompat="@mipmap/ic_launcher" />
<View
android:id="@+id/itemview"
android:layout_width="wrap_content"
android:layout_marginTop="5dp"
android:background="#22b4a1"
android:layout_height="5dp"
android:layout_below="@id/itemimageView"
/>
//+++++++itemtwo+++++++++++++
<ImageView
android:id="@+id/twoimageViewone"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginStart="46dp"
android:layout_marginTop="44dp"
app:srcCompat="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/twoimageViewtwo"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="44dp"
app:srcCompat="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/twoimageViewthree"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="45dp"
android:layout_marginEnd="47dp"
app:srcCompat="@mipmap/ic_launcher" />
<TextView
android:id="@+id/twotextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="136dp"
android:text="TextView"
android:textSize="30dp" />
<View
android:id="@+id/twoview"
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="#28978c"
android:layout_below="@id/twotextView"
android:layout_marginTop="5dp"
/>
//+++++++++++++++适配器MyAdapter++++++++++ package com.gx.rikao20181016.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.gx.rikao20181016.R;
import com.gx.rikao20181016.bean.Data;
import com.squareup.picasso.Picasso;
import java.util.List;
public class MyAdapter extends BaseAdapter {
private Context context;
private List<Data.ResultBean.DataBean> list;
public MyAdapter(Context context, List<Data.ResultBean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder1 viewHolder1=null;
ViewHolder2 viewHolder2=null;
int type = getItemViewType(position);
switch (type){
case 0:
if (convertView==null){
viewHolder1=new ViewHolder1();
convertView=View.inflate(context,R.layout.item,null);
viewHolder1.textView=convertView.findViewById(R.id.itemtextView);
viewHolder1.imageView=convertView.findViewById(R.id.itemimageView);
viewHolder1.view=convertView.findViewById(R.id.itemview);
convertView.setTag(viewHolder1);
}
else {
viewHolder1= (ViewHolder1) convertView.getTag();
}
Data.ResultBean.DataBean dataBean = list.get(position);
viewHolder1.textView.setText(""+dataBean.getAuthor_name());
Picasso.with(context).load(dataBean.getThumbnail_pic_s()).into(viewHolder1.imageView);
break;
case 1:
if (convertView==null){
viewHolder2=new ViewHolder2();
convertView=View.inflate(context,R.layout.itemtwo,null);
viewHolder2.imageView=convertView.findViewById(R.id.twoimageViewone);
viewHolder2.imageView2=convertView.findViewById(R.id.twoimageViewtwo);
viewHolder2.imageView3=convertView.findViewById(R.id.twoimageViewthree);
viewHolder2.textView=convertView.findViewById(R.id.twotextView);
viewHolder2.view=convertView.findViewById(R.id.twoview);
convertView.setTag(viewHolder2);
}
else {
viewHolder2= (ViewHolder2) convertView.getTag();
}
break;
}
Data.ResultBean.DataBean dataBean = list.get(position);
switch (type){
case 0:
viewHolder1.textView.setText(dataBean.getAuthor_name());
Picasso.with(context).load(dataBean.getThumbnail_pic_s()).into(viewHolder1.imageView);
break;
case 1:
viewHolder2.textView.setText(dataBean.getAuthor_name());
Picasso.with(context).load(dataBean.getThumbnail_pic_s()).into(viewHolder2.imageView);
Picasso.with(context).load(dataBean.getThumbnail_pic_s02()).into(viewHolder2.imageView2);
Picasso.with(context).load(dataBean.getThumbnail_pic_s03()).into(viewHolder2.imageView3);
break;
}
return convertView;
}
class ViewHolder1{
TextView textView;
ImageView imageView;
View view;
}
class ViewHolder2{
TextView textView;
ImageView imageView,imageView2,imageView3;
View view;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
Data.ResultBean.DataBean dataBean = list.get(position);
String type = dataBean.getType();
if (type.equals("a")){
return 0;
}
else {
return 1;
}
}
}