Handler+HttpURLconnection

package com.example.rikao2;

import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import com.example.bean.bean;
import com.google.gson.Gson;

import java.io.BufferedReader;
import java.io.IOException;
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;

public class MainActivity extends AppCompatActivity {

private Button btn;
private TextView tv;
private String murl="https://suggest.taobao.com/sug?code=utf-8&q=%E6%89%8B%E6%9C%BA";
private List<List<String>> result = new ArrayList<>();
@SuppressLint("HandlerLeak")
private Handler handler=new Handler(){



    @Override
    public void handleMessage(Message msg) {
        if(msg.what==21)
        {
            String s = msg.obj.toString();
            tv.setText(s);
            Log.d( "handleMessage: zzz",s);
            Gson gson=new Gson();
            bean bean = gson.fromJson(s, bean.class);
            result = bean.getResult();
            Log.d("handleMessage: zzz", result +"");


        }
    }
};
private ListView lv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = findViewById(R.id.btn);
    tv = findViewById(R.id.tv);
    lv = findViewById(R.id.lv);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    indata();
                }


            }).start();

        }
    });
    lv.setAdapter(new MyAdapter());


}
private void indata() {
    try {
        URL url=new URL(murl);
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestMethod("GET");
         String fileContent= fileContent(urlConnection.getInputStream());

         Message me=new Message();
         me.what=21;
         me.obj=fileContent;
         handler.sendMessage(me);



    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

private String fileContent(InputStream inputStream) throws IOException {
    BufferedReader read=new BufferedReader(new InputStreamReader(inputStream));
    StringBuilder builder=new StringBuilder();
    String con;
    while((con=read.readLine())!=null)
    {
        builder.append(con);
    }
    return builder.toString();
}
class MyAdapter extends BaseAdapter{

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

    @Override
    public Object getItem(int position) {
        return null;
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if(convertView==null)
        {
            convertView=View.inflate(MainActivity.this,R.layout.item,null);
            holder=new ViewHolder();
            holder.name=convertView.findViewById(R.id.name);
            convertView.setTag(holder);
        }
        else
        {
            holder= (ViewHolder) convertView.getTag();
        }
        holder.name.setText(result.get(position).toString());
        return convertView;
    }
}
class ViewHolder{
    TextView name;
}

}

猜你喜欢

转载自blog.csdn.net/qq_43589991/article/details/83661420