结对作业第二阶段
发表时间: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;
}
}
}
浙公网安备 33010602011771号