安卓简单的应用上线____天气预报_忆林520的博客-爱代码爱编程
简单的事件逻辑:
从网上拿去天气数据,展示
然后做了一个数据清洗,然后还保存了一下最后的状态,以至于最后的时候可以打开所见即所得。
至于背景啥的,拿到源码以后自己改。
package com.example.weather_forecast;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EdgeEffect;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends AppCompatActivity {
EditText editText;
Button button;
TextView tishi;
ListView listView;
SharedPreferences spfcode,spf;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initDate();
chaxun();
moren();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String tempcity = editText.getText().toString();
wealthinit(spfcode.getString(tempcity,"101010100"));
tishi.setText("当前查询城市:"+ tempcity);
if(!spfcode.getString(tempcity,"").equals("")){
SharedPreferences.Editor editor = spf.edit();
editor.putString("1",tempcity);
editor.commit();
}
}
});
}
private void moren() {
if(spf.getString(1+"","").equals("")){
SharedPreferences.Editor editor = spf.edit();
editor.putString("1","北京");
editor.commit();
}
wealthinit(spfcode.getString(spf.getString("1","北京"),"101010100"));
}
private void initDate() {
editText = findViewById(R.id.per_gaichenshi);
button = findViewById(R.id.per_citytijiao);
tishi = findViewById(R.id.tishi);
listView = findViewById(R.id.per_list);
spfcode = getSharedPreferences("Citycode",MODE_PRIVATE);
spf = getSharedPreferences("Personal",MODE_PRIVATE);
}
class MyTask extends AsyncTask<String,Void,String> {
//获取json数据
@Override
protected String doInBackground(String... strings) {
String jsonStr= null;
try {
jsonStr = Httputils.getJson(strings[0]);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(jsonStr);
return jsonStr;
}
//解析json数据,显示出来
@Override
protected void onPostExecute(String s) {
try {
Wealther[] wealthers = Httputils.parseJson(s);
List<Wealther> list = Arrays.asList(wealthers);
Tianqiadapt adapter = new Tianqiadapt(MainActivity.this, list);
listView.setAdapter(adapter);
int[] highTemp = new int[list.size()];
int[] lowTemp = new int[list.size()];
for(int i=0;i<list.size();i++) {
Wealther temp = list.get(i);
highTemp[i] = Integer.parseInt(temp.getTem_1());
lowTemp[i] = Integer.parseInt(temp.getTem_2());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void wealthinit(String citycode) {
try {
new MyTask().execute("https://v0.yiketianqi.com/api?unescape=1&version=v91&appid=43656176&appsecret=I42og6Lm&ext=&cityid="+citycode);
// System.out.println(tempwealth);
} catch (Exception e) {
e.printStackTrace();
}
}
private void chaxun(){
InputStream is=getResources().openRawResource(R.raw.temp);
InputStreamReader isr= null;//包装成IO流
try {
isr = new InputStreamReader(is,"UTF-8");
BufferedReader bfr=new BufferedReader(isr); //包装成内存流
String instring="";
SharedPreferences.Editor editor = spfcode.edit();
while((instring=bfr.readLine())!=null) {
String[] split = instring.split("=");
if(split.length==2){
editor.putString(split[1],split[0]);
editor.commit();
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}
后续我会将源码放在Github上面
软件如下