您的位置:首页 > 理论基础 > 计算机网络

Android_请求网络数据展示到Listview

2017-09-03 18:33 471 查看
package activity.example.com.day;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.view.menu.BaseMenuPresenter;
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 android.widget.Toast;

import com.google.gson.Gson;
import com.google.gson.JsonElement;

import org.w3c.dom.Text;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;

import activity.example.com.day.com.bawei.bean.Bean;
import activity.example.com.day.com.bawei.bean.Bean2;
import activity.example.com.day.com.bawei.bean.Data;

public class Main2Activity extends AppCompatActivity {

private ListView lv;
private String urll;
private Gson gson;
List<Data> list = new ArrayList<Data>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);

lv = (ListView)findViewById(R.id.lv);
ass();

}

public String ass(){
new Thread(){

private StringBuilder builder;

@Override
public void run() {
super.run();
try {
URL url = new URL("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int code = urlConnection.getResponseCode();
if(code==200) {
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream));
builder = new StringBuilder();
String s = "";
while ((s = bf.readLine()) != null) {
builder.append(s);
}
Message message = Message.obtain();
message.obj=builder.toString();
Handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
return null;
}

Handler Handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
gson = new Gson();
Bean bean = gson.fromJson((String) msg.obj, Bean.class);
List<Data> data = bean.getData();
for(int i=0;i<data.size();i++){
list.add(new Data(data.get(i).getNews_id(),data.get(i).getNews_summary(),data.get(i).getNews_title(),data.get(i).getPic_url()));
}
lv.setAdapter(new Adapter());
}
};

class Adapter 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;
}

class ViewHowder{
ImageView img;
TextView tv;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Data data = list.get(i);
ViewHowder howder = new ViewHowder();
if(view==null){
view=View.inflate(Main2Activity.this,R.layout.lv,null);
howder.img  = (ImageView) view.findViewById(R.id.imageView2);
howder.tv = (TextView)view.findViewById(R.id.textView);
view.setTag(howder);
}else{
howder = (ViewHowder) view.getTag();
}
howder.tv.setText(data.getNews_title());
new MyASynctask(howder.img).execute(data.getPic_url());
return view;
}
}

class MyASynctask extends AsyncTask<String,Void,Bitmap>{

private ImageView img;
private Bitmap bitmap;

public MyASynctask(ImageView img){
this.img=img;
}

@Override
protected Bitmap doInBackground(String... strings) {
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}

@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
img.setImageBitmap(bitmap);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐