package com.liulailin.async;
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.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import static android.R.attr.data;
public class MainActivity extends AppCompatActivity {
String path ="https://www.toutiao.com/api/pc/focus/";
private ListView lv;
List<BeanData.DataBean.PcFeedFocusBean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
//getData();
//Void
new AsyncTask<String ,String,String>(){
/**
* 子线程里面运行,做联网的操作
* @param strings
* @return
*/
@Override
protected String doInBackground(String... strings) {
String path = strings[0];
try {
URL url = new URL(path);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//get请求
urlConnection.setRequestMethod("GET");
//超时连接
urlConnection.setConnectTimeout(5000);
int responseCode = urlConnection.getResponseCode();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if (responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
int len;
byte[] arr = new byte[1024*20];
while ((len=inputStream.read(arr))!=-1){
baos.write(arr,0,len);
}
}
//返回的值
return baos.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 在主线程里面运行,可以做UI更新操作
* @param s
*/
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
BeanData beanData = gson.fromJson(s, BeanData.class);
//集合就是所有的数据的集合
list = beanData.getData().getPc_feed_focus();
lv.setAdapter(new MyAdapter());
// Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
//解析的操作,和展示到页面的操作
}
}.execute(path);
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.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) {
TextView tv = new TextView(MainActivity.this);
tv.setText(list.get(i).getTitle());
return tv;
}
}
}
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.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import static android.R.attr.data;
public class MainActivity extends AppCompatActivity {
String path ="https://www.toutiao.com/api/pc/focus/";
private ListView lv;
List<BeanData.DataBean.PcFeedFocusBean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
//getData();
//Void
new AsyncTask<String ,String,String>(){
/**
* 子线程里面运行,做联网的操作
* @param strings
* @return
*/
@Override
protected String doInBackground(String... strings) {
String path = strings[0];
try {
URL url = new URL(path);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//get请求
urlConnection.setRequestMethod("GET");
//超时连接
urlConnection.setConnectTimeout(5000);
int responseCode = urlConnection.getResponseCode();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if (responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
int len;
byte[] arr = new byte[1024*20];
while ((len=inputStream.read(arr))!=-1){
baos.write(arr,0,len);
}
}
//返回的值
return baos.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 在主线程里面运行,可以做UI更新操作
* @param s
*/
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
BeanData beanData = gson.fromJson(s, BeanData.class);
//集合就是所有的数据的集合
list = beanData.getData().getPc_feed_focus();
lv.setAdapter(new MyAdapter());
// Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
//解析的操作,和展示到页面的操作
}
}.execute(path);
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.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) {
TextView tv = new TextView(MainActivity.this);
tv.setText(list.get(i).getTitle());
return tv;
}
}
}