主方法
MainActivity
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
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 org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
TextView tv;
ListView lv;
int index = 0;
List<String> list = new ArrayList<String>();
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 0) {
String sing = (String) msg.obj;
try {
JSONArray jsonArray = new JSONArray(sing);
for (int i = 0; i < jsonArray.length(); i++) {
String string = jsonArray.getString(i);
list.add(string);
}
tv.setText(list.get(index));
handler.sendEmptyMessageDelayed(1, 3000);
} catch (Exception e) {
e.printStackTrace();
}
} else if (msg.what == 1) {
index++;
index = index % list.size();
tv.setText(list.get(index));
handler.sendEmptyMessageDelayed(1, 3000);
}
}
};
// Handler handler = new Handler() {
// @Override
// public void handleMessage(Message msg) {
// super.handleMessage(msg);
// tv.setText(list.get(index % list.size()));
// index++;
// sendEmptyMessageDelayed(1, 3000);
// }
// };
private List<Yi.NewslistBean> list2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
lv = (ListView) findViewById(R.id.lv);
list.add("自己定义数据");
list.add("自己定义数据");
list.add("自己定义数据");
list.add("自己定义数据");
list.add("自己定义数据");
handler.sendEmptyMessageDelayed(1, 100);
new Thread() {
@Override
public void run() {
String path;//路径
try {
URL url = new URL("http://www.toutiao.com/hot_words/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = connection.getInputStream();
String str = Streamtostring(inputStream);
Log.d("zzzz", str);
Message msg = Message.obtain();
msg.what = 0;
msg.obj = str;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
// new Thread() {
// @Override
// public void run() {
// super.run();
// try {
// URL url = new URL("http://www.toutiao.com/hot_words/");
// HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
// urlConnection.setRequestMethod("GET");
// urlConnection.setReadTimeout(5000);
// urlConnection.setConnectTimeout(5000);
// if (urlConnection.getResponseCode() == 200) {
// InputStream inputStream = urlConnection.getInputStream();
// String str = Streamtostring(inputStream);
// getjsondata(str);
// handler.sendEmptyMessage(1);
// }
// } catch (MalformedURLException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// }.start();
Mytask mytask = new Mytask();
mytask.execute(new String[]{"http://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10", "1"});
}
public void getjsondata(String str) {
try {
JSONArray array = new JSONArray(str);
for (int i = 0; i < array.length(); i++) {
String data = array.optString(i);
list.add(data);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
public String Streamtostring(InputStream inputStream) {
StringBuilder stringBuilder = new StringBuilder();
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String con;
while ((con = bufferedReader.readLine()) != null) {
stringBuilder.append(con);
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
class Mytask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet hg = new HttpGet(strings[0]);
try {
HttpResponse response = httpClient.execute(hg);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gs = new Gson();
Yi json = gs.fromJson(s, Yi.class);
list2 = json.getNewslist();
lv.setAdapter(new Myadapter());
Log.e("aaa", "onPostExecute: ========" + list2);
}
}
class Myadapter extends BaseAdapter {
@Override
public int getCount() {
return list2.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Viewholder vh;
if (view == null) {
view = View.inflate(MainActivity.this, R.layout.item, null);
vh = new Viewholder();
vh.tv1 = (TextView) view.findViewById(R.id.textView);
vh.tv2 = (TextView) view.findViewById(R.id.textView2);
vh.img = (ImageView) view.findViewById(R.id.imageView);
view.setTag(vh);
} else {
vh = (Viewholder) view.getTag();
}
vh.tv1.setText(list2.get(i).getTitle());
vh.tv2.setText(list2.get(i).getCtime());
if (list2.get(i).getPicUrl() != null) {
vh.img.setTag(i);
Mypic mypic = new Mypic(vh.img, i);
mypic.execute(list2.get(i).getPicUrl());
}
return view;
}
}
public static class Viewholder {
TextView tv1;
TextView tv2;
ImageView img;
}
class Mypic extends AsyncTask<String, Void, Bitmap> {
private Bitmap bitmap;
ImageView imageView;
private String picurl;
int sss = -1;
public Mypic(ImageView imageView, int i) {
this.imageView = imageView;
sss = i;
}
@Override
protected Bitmap doInBackground(String... params) {
// TODO Auto-generated method stub
try {
picurl = params[0];
URL url = new URL(params[0]);
HttpURLConnection connectionurl = (HttpURLConnection) url.openConnection();
connectionurl.setRequestMethod("GET");
connectionurl.setConnectTimeout(5000);
int code = connectionurl.getResponseCode();
if (code == 200) {
InputStream inputStream = connectionurl.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (result != null) {
int a = (int) imageView.getTag();
if (a == sss) {
imageView.setImageBitmap(result);
}
}
}
}
}
Bean类
Yi
private int code;
private String msg;
private List<NewslistBean> newslist;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public List<NewslistBean> getNewslist() {
return newslist;
}
public void setNewslist(List<NewslistBean> newslist) {
this.newslist = newslist;
}
public static class NewslistBean {
/**
* ctime : 2017-11-05
* title : 6.98万起,最便宜的丰田车,进入中国15年号称开不坏!
* description : 有车以后
* picUrl : https://zxpic.gtimg.com/infonew/0/wechat_pics_-57693322.jpg/640
* url : https://mp.weixin.qq.com/s?src=16&ver=470×tamp=1509879641&signature=U2pYwW3A*fMsRThxYgXRrBZBFnqsrZUdoc22PaGEKm9XsPavBAo2kyqAZ96Wsg9nN0*5WUE5vvCD1n1EQizj1Vez799ZEyLBOUUfoeqqV-A=
*/
private String ctime;
private String title;
private String description;
private String picUrl;
private String url;
public String getCtime() {
return ctime;
}
public void setCtime(String ctime) {
this.ctime = ctime;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getPicUrl() {
return picUrl;
}
public void setPicUrl(String picUrl) {
this.picUrl = picUrl;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
}