GET方法 网络获取消息展现listview 含有网络开关AlertDialog

MainActivity 


private ListView listView;
private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {

      List<Bean.NewslistBean> list = (List<Bean.NewslistBean>) msg.obj;

        Myadaptet myadaptet = new Myadaptet(list, MainActivity.this);
        listView.setAdapter(myadaptet);
    }
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView = findViewById(R.id.lv);

    Net net = new Net();

    if(net.isCoon(this)){

        new Thread(){
            @Override
            public void run() {

                fangfa();
            }
        }.start();
    }else{
        net.NetAlertDialog(this);
    }

}

private void fangfa() {
    try {
        URL url = new URL("http://api.tianapi.com/social/?key=ccb52b925a990c6082e12eaec78f1666&num=10");
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestMethod("GET");
        urlConnection.setReadTimeout(5000);
        urlConnection.setConnectTimeout(5000);

        int responseCode = urlConnection.getResponseCode();
        if(responseCode==200){
            InputStream inputStream = urlConnection.getInputStream();

            String s  =  streamtoString(inputStream);
            Gson gson = new Gson();
            Bean bean = gson.fromJson(s, Bean.class);

            List<Bean.NewslistBean> list  = bean.getNewslist();

            Message msg = Message.obtain();
            msg.obj = list;
            handler.sendMessage(msg);


        }

    } catch ( Exception e) {
        e.printStackTrace();
    }


}

private String streamtoString(InputStream inputStream) {
    StringBuilder stringBuilder = new StringBuilder();
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

    String str;
    try {
        if((str = reader.readLine())!=null){
            stringBuilder.append(str);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }


    return  stringBuilder.toString();
}





MyAdapter



class Myadaptet extends BaseAdapter{
    List<Bean.NewslistBean> list;
    Context context;
    public Myadaptet(List<Bean.NewslistBean> list, MainActivity context) {
        this.list= list;
        this.context =context;
    }

    @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.Tvdesc = convertView.findViewById(R.id.tvdesc);
            holder.Tvtitle = convertView.findViewById(R.id.tvtitle);

            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }
        holder.Tvtitle.setText(list.get(position).getTitle());
        holder.Tvdesc.setText(list.get(position).getDescription());
        return convertView;
    }

    class  ViewHolder{

        TextView Tvtitle;
        TextView Tvdesc;
    }
}






NET  网络开关AlertDialog 提示


class Net {

    public boolean isCoon(Context context){
        ConnectivityManager manager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
        if(activeNetworkInfo!=null&&activeNetworkInfo.isAvailable()){
            return true;

        }else{
            return  false;
        }

    }

    public  void NetAlertDialog(final  Context context){
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle("打开网络设置界面");
        builder.setMessage("当前没有网络,是否打开网络设置界面");
        builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Intent intent = null;
                if(Build.VERSION.SDK_INT>10){
                    intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);

                }else{
                    intent = new Intent();
                    intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
                }

                context.startActivity(intent);

            }
        });

        builder.setNegativeButton("取消",null);
        AlertDialog dialog = builder.create();
        dialog.show();

    }
}



清单文件配置


<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值