网络请求GET方式 ListView展示数据

标题ListView展示数据

private Button button;
private ListView listView;
private MyBase myBase;
private final int UPDATE_UI=1;
private Handler handler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        switch (msg.what){
            case UPDATE_UI:
                List<List<String>> slist= (List<List<String>>) msg.obj;
               myBase.setList(slist);
        }

    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //获取资源ID
    button = findViewById(R.id.button);
    listView = findViewById(R.id.listview);
    myBase=new MyBase(this);
    listView.setAdapter(myBase);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!isHasNet()){
                Toast.makeText(MainActivity.this,"当前无网络",Toast.LENGTH_LONG).show();
            }
            new Thread(
                    new Runnable() {
                        @Override
                        public void run() {
                            getInfo();


                        }
                    }
            ).start();
        }
    });
}
private String path="https://suggest.taobao.com/sug?code=utf-8&q=%E6%89%8B%E6%9C%BA";
//得到数据
public void getInfo(){
    //得到地址
    try {
        URL url=new URL(path);
        //打开连接
        HttpURLConnection connection= (HttpURLConnection) url.openConnection();
        //设置方法,超时
        connection.setRequestMethod("GET");
        connection.setConnectTimeout(5000);
        connection.setReadTimeout(5000);
        //得到响应码
        int responseCode = connection.getResponseCode();
        if(responseCode==200){
            InputStream inputStream = connection.getInputStream();
            String stream = stream(inputStream);
            Gson gson=new Gson();
            PhoneBean phoneBean = gson.fromJson(stream, PhoneBean.class);
            List<List<String>> result = phoneBean.getResult();
            Message message = handler.obtainMessage(UPDATE_UI, result);
            handler.sendMessage(message);



        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
//字节转换为字符
public String stream(InputStream is) throws IOException {
    StringBuilder builder=new StringBuilder();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br=new BufferedReader(isr);
    for (String tem=br.readLine();tem!=null;tem=br.readLine()) {
        builder.append(tem);
    }
    return builder.toString();
}
public  boolean isHasNet(){
    ConnectivityManager manager= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
    return activeNetworkInfo!=null &&activeNetworkInfo.isAvailable();
}

ListView适配器中的代码

class MyBase extends BaseAdapter {
private Context context;
private List<List> list;

public void setList(List<List<String>> list) {
    this.list = list;
    notifyDataSetChanged();
}

public MyBase(Context context) {
    this.context = context;
    list=new ArrayList<>();
}

@Override
public int getCount() {
    return list.size();
}

@Override
public Object getItem(int position) {
    return list.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if(convertView==null){
        convertView=View.inflate(context,R.layout.item,null);
        holder=new ViewHolder();
        holder.textView=convertView.findViewById(R.id.textView);
        convertView.setTag(holder);
    }else
    {
        holder= (ViewHolder) convertView.getTag();
    }

  holder.textView.setText(list.get(position).get(0));
    return convertView;
}
class ViewHolder{
    TextView textView;
}

}

GSON解析的Bean类

public class PhoneBean {
public List<List> result;

public List<List<String>> getResult() {
    return result;
}

public void setResult(List<List<String>> result) {
    this.result = result;
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值