import android.os.AsyncTask;
import android.os.Bundle;
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 java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
String urlBitmap = "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg";
private ListView listView;
ArrayList<Product.DataBean> dataBeanList = new ArrayList();
private MAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.lv);
//直接调用asyncTask类请求网络,把url传进去
mAdapter = new MAdapter();
listView.setAdapter(mAdapter);
new MAsyncTask().execute(urlString);
}
/**
* 泛型 第一个参数:传过来的url
* 第二个参数 :进度
* 第三个参数 :接口请求成功返回的东西(json,bitmap)
*/
private class MAsyncTask extends AsyncTask<String,Void,String>{
/**
* 这个方法在子线程,在这个方法里进行联网操作
* @param strings 可变参数,底层是数组,里面放的是传过来的参数;
* @return
*/
@Override
protected String doInBackground(String... strings) {
String urlTemp = strings[0];
//直接用工具类获取json
String netJson = NetUtil.getNetJson(urlTemp);
return netJson; //返回给(前台方法,主线程方法onPostExecute)
}
/**
* 这个方法在主线程, 直接更新ui即可;
* @param s s是doInBackground请求接口成功后返回的json
*/
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.e("wzq", "onPostExecute: "+s );
//解析s, 直接给控件展示;
Gson gson = new Gson();
Product product = gson.fromJson(s, Product.class);
//把一个集合的数据放入另一个集合
List<Product.DataBean> temp = product.getData();
dataBeanList.addAll(temp);
mAdapter.notifyDataSetChanged();
}
}
private class MAdapter extends BaseAdapter{
@Override
public int getCount() {
return dataBeanList.size();
}
@Override
public Object getItem(int i) {
return dataBeanList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View itemView = View.inflate(MainActivity.this, R.layout.item02, null);
TextView tv_name = itemView.findViewById(R.id.tv_name);
ImageView iv = itemView.findViewById(R.id.iv);
tv_name.setText("dataBeanList.get(i).getNews_summary()");
// iv.setImageBitmap(xxxx);
return itemView;
}
}
}
import android.os.Bundle;
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 java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
String urlBitmap = "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg";
private ListView listView;
ArrayList<Product.DataBean> dataBeanList = new ArrayList();
private MAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.lv);
//直接调用asyncTask类请求网络,把url传进去
mAdapter = new MAdapter();
listView.setAdapter(mAdapter);
new MAsyncTask().execute(urlString);
}
/**
* 泛型 第一个参数:传过来的url
* 第二个参数 :进度
* 第三个参数 :接口请求成功返回的东西(json,bitmap)
*/
private class MAsyncTask extends AsyncTask<String,Void,String>{
/**
* 这个方法在子线程,在这个方法里进行联网操作
* @param strings 可变参数,底层是数组,里面放的是传过来的参数;
* @return
*/
@Override
protected String doInBackground(String... strings) {
String urlTemp = strings[0];
//直接用工具类获取json
String netJson = NetUtil.getNetJson(urlTemp);
return netJson; //返回给(前台方法,主线程方法onPostExecute)
}
/**
* 这个方法在主线程, 直接更新ui即可;
* @param s s是doInBackground请求接口成功后返回的json
*/
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.e("wzq", "onPostExecute: "+s );
//解析s, 直接给控件展示;
Gson gson = new Gson();
Product product = gson.fromJson(s, Product.class);
//把一个集合的数据放入另一个集合
List<Product.DataBean> temp = product.getData();
dataBeanList.addAll(temp);
mAdapter.notifyDataSetChanged();
}
}
private class MAdapter extends BaseAdapter{
@Override
public int getCount() {
return dataBeanList.size();
}
@Override
public Object getItem(int i) {
return dataBeanList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View itemView = View.inflate(MainActivity.this, R.layout.item02, null);
TextView tv_name = itemView.findViewById(R.id.tv_name);
ImageView iv = itemView.findViewById(R.id.iv);
tv_name.setText("dataBeanList.get(i).getNews_summary()");
// iv.setImageBitmap(xxxx);
return itemView;
}
}
}