MainActivity
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import static android.R.attr.numberPickerStyle;
import static android.R.attr.type;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private Gson gson;
private String path = "http://v.juhe.cn/toutiao/index?type=top&key=2f092bd9ce76c0257052d6d3c93c11b4";
private List<Bean.ResultBean.DataBean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listview);
new My().execute();
}
class My extends AsyncTask {
@Override
protected Object doInBackground(Object[] objects) {
String string = "";
try {
URL url = new URL(path);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
// con.setConnectTimeout(5000);
// con.setReadTimeout(5000);
int code = con.getResponseCode();
if (code == 200) {
InputStream is = con.getInputStream();
byte[] b = new byte[1024];
int l = 0;
while ((l = is.read(b)) != -1) {
String str = new String(b, 0, l);
string += str;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return string;
}
@Override
protected void onPostExecute(Object o) {
gson = new Gson();
Bean bean = gson.fromJson((String) o, Bean.class);
list = bean.getResult().getData();
MyAdapter adapter = new MyAdapter();
listView.setAdapter(adapter);
}
}
public class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public int getViewTypeCount() {
return 4;
}
@Override
public int getItemViewType(int position) {
if (list.get(position).getThumbnail_pic_s03() != null) {
return 3;
} else if (list.get(position).getThumbnail_pic_s02() != null) {
return 2;
} else if (list.get(position).getThumbnail_pic_s() != null) {
return 1;
}
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Holder holder = null;
Holder2 holder2 = null;
Holder3 holder3 = null;
int type = getItemViewType(i);
if (type == 3) {
if (view == null) {
view = View.inflate(MainActivity.this, R.layout.item3, null);
holder3 = new Holder3();
holder3.te3 = view.findViewById(R.id.te3);
holder3.item3_img1 = view.findViewById(R.id.item3_img1);
holder3.item3_img2 = view.findViewById(R.id.item3_img2);
holder3.item3_img3 = view.findViewById(R.id.item3_img3);
view.setTag(holder3);
} else {
holder3 = (Holder3) view.getTag();
}
holder3.te3.setText(list.get(i).getTitle());
String item3_img1 = list.get(i).getThumbnail_pic_s();
ImageLoader il = ImageLoader.getInstance();
il.displayImage(item3_img1, holder3.item3_img1);
String item3_img2 = list.get(i).getThumbnail_pic_s02();
ImageLoader il2 = ImageLoader.getInstance();
il2.displayImage(item3_img2, holder3.item3_img2);
String item3_img3 = list.get(i).getThumbnail_pic_s03();
ImageLoader il3 = ImageLoader.getInstance();
il3.displayImage(item3_img3, holder3.item3_img3);
} else if (type == 2) {
if (view == null) {
view = View.inflate(MainActivity.this, R.layout.item2, null);
holder2 = new Holder2();
holder2.te2 = view.findViewById(R.id.te2);
holder2.item2_img1 = view.findViewById(R.id.item2_img1);
holder2.item2_img2 = view.findViewById(R.id.item2_img2);
view.setTag(holder2);
} else {
holder2 = (Holder2) view.getTag();
}
holder2.te2.setText(list.get(i).getTitle());
String item2_img1 = list.get(i).getThumbnail_pic_s();
ImageLoader il = ImageLoader.getInstance();
il.displayImage(item2_img1, holder2.item2_img1);
String item2_img2 = list.get(i).getThumbnail_pic_s02();
ImageLoader il2 = ImageLoader.getInstance();
il2.displayImage(item2_img2, holder2.item2_img2);
} else {
if (view == null) {
view = View.inflate(MainActivity.this, R.layout.item1, null);
holder = new Holder();
holder.te1 = view.findViewById(R.id.te1);
holder.item1_img1 = view.findViewById(R.id.item1_img1);
view.setTag(holder);
} else {
holder = (Holder) view.getTag();
}
holder.te1.setText(list.get(i).getTitle());
String item1_img1 = list.get(i).getThumbnail_pic_s();
ImageLoader instance = ImageLoader.getInstance();
instance.displayImage(item1_img1, holder.item1_img1);
}
return view;
}
}
class Holder {
TextView te1;
ImageView item1_img1;
}
class Holder2 {
TextView te2;
ImageView item2_img1;
ImageView item2_img2;
}
class Holder3 {
TextView te3;
ImageView item3_img1;
ImageView item3_img2;
ImageView item3_img3;
}
}
Myapp
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
/**
* Created by lenovo on 2017/09/08.
*/
public class Myapp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(getApplicationContext());
ImageLoader.getInstance().init(aDefault);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</RelativeLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
>
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".Myapp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>