结对作业第二阶段

发表时间:2021.3.15

1、利用Androidstudio开发疫情app

2、想法:通过javaweb获取MySQL数据库当中的数据,获取的数据用json传给App中显示。

3、源代码MainActivity:

 

package com.example.cov_2;

 

import androidx.appcompat.app.AppCompatActivity;

 

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.EditText;

import android.widget.Spinner;

import android.widget.TextView;

 

import com.google.gson.Gson;

import com.google.gson.reflect.TypeToken;

 

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.lang.reflect.Type;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.ProtocolException;

import java.net.URL;

import java.util.ArrayList;

import java.util.List;

 

public class MainActivity extends AppCompatActivity {

 

    Button select_btn;

    TextView response_tv;

    private static final String TAG = "MainActivity";

    EditText where_et;

    DatePicker datePicker;

    Spinner type_sp;

    private String result;

    String date;

    TextView show;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        select_btn = findViewById(R.id.bt_select);

        response_tv = findViewById(R.id.tv_show);

        where_et = findViewById(R.id.et_where);

        datePicker = findViewById(R.id.datepicker);

        type_sp = findViewById(R.id.sp_type);

        show = findViewById(R.id.tv_show);

        select_btn.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                new Thread(new Runnable() {

                    @Override

                    public void run() {

                        date = datePicker.getYear()+"-0"+(datePicker.getMonth()+1)+"-"+datePicker.getDayOfMonth();

                        Log.d(TAG, "onClick: "+date);

                        requestDate();

                    }

                }).start();

 

//                Log.d(TAG, "onClick: "+datePicker.getYear()+"  "+datePicker.getMonth()+"  "+datePicker.getDayOfMonth());

//                Log.d(TAG, "onClick: 1"+where_et.getText().toString());

//                Log.d(TAG, "onClick: "+type_sp.getSelectedItem().toString());

 

            }

        });

    }

 

    private void requestDate() {

        if (where_et.getText() != null) {

            try {

                String ul="";

                try {

 

                    if(type_sp.getSelectedItem().toString().equals("国家")){

                        ul = "/" + where_et.getText().toString() + "/" + date;

                    }else if (type_sp.getSelectedItem().toString().equals("省份")||type_sp.getSelectedItem().toString().equals("城市")){

                        ul = "" + where_et.getText().toString() + "/" + date;

                    }

//                    switch (where_et.getText().toString()) {

//                        case "国家":

//                            ul = "" + where_et.getText().toString() + "/" + date;

//                            break;

//                        case "省份":

//                        case "城市":

//                            ul = "" + where_et.getText().toString() + "/" + date;

//                            break;

//                        default:

//                            throw new IllegalStateException("Unexpected value: " + where_et.getText().toString());

//                    }

                    Log.d(TAG, "requestDate: *"+ul);

                    URL url = new URL(ul);

                    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();

                    httpURLConnection.setConnectTimeout(30 * 1000);

                    httpURLConnection.setRequestMethod("GET");

                    httpURLConnection.setRequestProperty("Content-Type", "application/json");

                    httpURLConnection.setRequestProperty("Charset", "UTF-8");

                    httpURLConnection.setRequestProperty("Accept-Charset", "UTF-8");

                    httpURLConnection.connect();//发起连接

                    int responseCode = httpURLConnection.getResponseCode();

                    String responseMessage = httpURLConnection.getResponseMessage();

 

                    if (responseCode == HttpURLConnection.HTTP_OK) {

                        InputStream inputStream = httpURLConnection.getInputStream();

                        result = streamToString(inputStream);

                        runOnUiThread(new Runnable() {

                            @Override

                            public void run() {

                                List<bean> list = new ArrayList<bean>();

                                Gson gson = new Gson();

                                Type cityType = new TypeToken<ArrayList<bean>>() {

                                }.getType();

 

                                list = gson.fromJson(result, cityType);

                                String ziz = "";

                                for (bean yiqi : list) {

                                    ziz = yiqi.getName() + "\n确诊:" + yiqi.getConfirm() + "\n治愈:" + yiqi.getHeal() +

                                            "\n死亡:" + yiqi.getDead() + "\n";

                                    break;

 

                                }

                                show.setText(ziz);

                            }

                        });

 

 

                    }

                } catch (ProtocolException e) {

                    e.printStackTrace();

                } catch (MalformedURLException e) {

                    e.printStackTrace();

                } catch (IOException e) {

                    e.printStackTrace();

                }

            } finally {

 

            }

        }

 

 

    }

 

 

 

 

    public String streamToString(InputStream is) {

        try {

            ByteArrayOutputStream baos = new ByteArrayOutputStream();

            byte[] buffer = new byte[1024];

            int len;

            while ((len = is.read(buffer)) != -1) {

                baos.write(buffer, 0, len);

            }

            baos.close();

            is.close();

            byte[] byteArray = baos.toByteArray();

            return new String(byteArray);

        } catch (Exception e) {

            Log.e(TAG, e.toString());

            return null;

        }

    }

}

 

posted @ 2021-03-15 12:22  derek&cosmo  阅读(38)  评论(0)    收藏  举报