MainActivity
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private String jiekou="http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=tt";
private UrlConnection urlConnection;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
LAdapter lAdapter=(LAdapter)msg.obj;
listView.setAdapter(lAdapter);
break;
}
}
};
private LAdapter lAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listview);
urlConnection = new UrlConnection();
new Thread(){
@Override
public void run() {
super.run();
String data = urlConnection.getData(jiekou);
Gson gson=new Gson();
Bean bean = gson.fromJson(data, Bean.class);
List<Bean.ResultBean.DataBean> data1=bean.getResult().getData();
lAdapter = new LAdapter(MainActivity.this, (ArrayList<Bean.ResultBean.DataBean>) data1);
Message message=new Message();
message.what=1;
message.obj=lAdapter;
handler.sendMessage(message);
}
}.start();
}
}
UrlConnection
import com.google.common.io.CharStreams;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
public class UrlConnection {
private static String string1;
public static String getData(final String string) {
try {
URL url = new URL(string);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(3000);
connection.setConnectTimeout(3000);
int code = connection.getResponseCode();
if (code == 200) {
InputStream inputStream = connection.getInputStream();
InputStreamReader streamReader = new InputStreamReader(inputStream, "UTF-8");
string1 = CharStreams.toString(streamReader);
string1.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return string1;
};
}
适配器
import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
public class LAdapter extends BaseAdapter {
private Context context;
private ArrayList<Bean.ResultBean.DataBean> list;
public LAdapter(Context context, ArrayList<Bean.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 int getItemViewType(int position) {
int num=0;
String pic = list.get(position).getThumbnail_pic_s02();
if (pic !=null){
num=1;
}else {
num=0;
}
return num;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder1 holder1=null;
ViewHolder2 holder2=null;
int type = getItemViewType(position);
if (convertView==null){
switch (type){
case 0:
holder1=new ViewHolder1();
convertView = View.inflate(context, R.layout.list1_item, null);
holder1.name=convertView.findViewById(R.id.name);
holder1.wangzhi=convertView.findViewById(R.id.wangzhi);
convertView.setTag(holder1);
break;
case 1:
holder2=new ViewHolder2();
convertView = View.inflate(context, R.layout.list2_item, null);
holder2.name2=convertView.findViewById(R.id.name2);
holder2.wangzhi2=convertView.findViewById(R.id.wangzhi2);
holder2.image2=convertView.findViewById(R.id.image);
convertView.setTag(holder2);
break;
}
}else {
switch (type){
case 0:
holder1 = (ViewHolder1) convertView.getTag();
break;
case 1:
holder2 = (ViewHolder2) convertView.getTag();
break;
}
}
switch (type){
case 0:
holder1.name.setText(list.get(position).getTitle());
holder1.wangzhi.setText(list.get(position).getAuthor_name());
break;
case 1:
holder2.name2.setText(list.get(position).getTitle());
holder2.wangzhi2.setText(list.get(position).getAuthor_name());
DisplayImageOptions options=new DisplayImageOptions.Builder().cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder2.image2,options);
break;
}
return convertView;
}
class ViewHolder1{
TextView name;
TextView wangzhi;
}
class ViewHolder2{
TextView name2;
TextView wangzhi2;
ImageView image2;
}
}
在清单注册name=App
App
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration loaderConfiguration=ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(loaderConfiguration);
}
}
所用依赖
implementation ‘com.google.code.gson:gson:2.2.4’
implementation ‘com.google.guava:guava:16.0.1’
implementation ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’