代码编织梦想

简单的事件逻辑:

从网上拿去天气数据,展示

然后做了一个数据清洗,然后还保存了一下最后的状态,以至于最后的时候可以打开所见即所得。

至于背景啥的,拿到源码以后自己改。

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上面

软件如下

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_49984757/article/details/128007906

android口袋天气系统一-->整体架构-爱代码爱编程

源码暂时不会给,因为此应用博主是要制作出来上线的,而且现在只做了一部分 效果图: 思路: 1.程序由一个Activity和多个Fragment组成 2.程序第一次进入时先进入引导界面,然后进入主界面。以后每次都是先进入欢迎界面,然后进入主界面 3.引导界面由ViewPager构成,在最后一个page上设置一个开始使用按钮,点击按

android口袋天气系列五-->天气页面-爱代码爱编程

源码暂时不会给,因为此应用博主是要制作出来上线的,而且现在只做了一部分 效果图: 思路: 1.天气页面里面主要是包含一些天气信息,界面主要是由一些简单的控件组成 2.自定义折线图的实现 3.开启一个AsyncTask ,获取天气信息   别的代码就不贴了,主要是折线图,折线图最好不要用用AchartEngine,要

本人独立开发的天气app-口袋天气成功在应用宝上线-爱代码爱编程

经过这次的app上线经历,我真心觉得一个app的开发到上线的过程是一个不简单的过程。 口袋天气下载地址:http://sj.qq.com/myapp/detail.htm?apkName=com.zhanghao.pocketweather 或者直接在手机应用宝搜索口袋天气就行,希望大家支持! 我是大约在今年6月6日左右开始提交应用审核的

android 高仿74款app_aaaa_roshen的博客-爱代码爱编程_android 仿

Github搜索就有了 ------------------------------------------------------------------------------------------------------------------------------------------- WeChat高仿微信 高

我的“天气宝”上线啦_风云正的博客-爱代码爱编程

我的“天气宝”上线啦!!!!!!!!!!! 项目中网络请求使用的是谷歌自己的Volley框架,可扩展性很好;首页天气显示的是天气预报官网给的数据,支持全国范围内的城市天气查询,首页温度的折线图使用的是AChartEngine,使用起来也是很方便的,各种图形都有,代码也很好理解,360度全景功能使用的百度提供的全景api,每日一语使用的是金山词霸对

求大家推荐一款好用的天气预报软件华为ma_硬磕到底!华为、字节跳动入局搜索市场,与百度正面刚...-爱代码爱编程

作者:报报 来源:互联网黑板报(ID:Netheiban) 搜索引擎作为一大流量入口,历来是各家向往之地。但自从百度一家独大之后,就很难从中撬开一个口子。而就在这2020年开春之际,意外的有字节跳动放出大招,隔壁搞硬件起家的华为,似乎也有新的动作。 “头条一下,就是你想搜的” 以后遇到问题不要慌,除了“百度一下”之外,你

【必读】目前最受欢迎的60款Android应用-爱代码爱编程

注:2014年,是Android应用大获丰收的一年。我们从十一个方面: 照片、视频、娱乐、学习、新闻和天气预报等,挑选出最受欢迎的近60种(57种)应用,介绍给大家,满足大家的各种需求,看完以后,你肯定会喜欢其中的几款。好好看一下,总会有新发现! 第一类:照片和视频 1.Carousel 这是Dropbox推出的智能照片管理应用,

基于Android开发的聊天机器人新闻天气社交APP-爱代码爱编程

IDE环境:AndroidStudio 源码及论文下载:http://www.byamd.xyz/tag/android/ APP演示: 摘要 5G网络就快到来了,4G网络已经基本上覆盖了,便捷的网络环境为安卓手机添加更多的精彩丰富的内容提供了良好的平台和基础。目前安卓开发正对我们的生活造成巨大的影响,我们的生活已经离不开如微

android 天气 小众软件,杂货铺 篇六:习惯了手机自带的日历天气类App,来点新鲜感?这些App美到令人窒息!...-爱代码爱编程

杂货铺 篇六:习惯了手机自带的日历天气类App,来点新鲜感?这些App美到令人窒息! 2019-01-26 18:18:27 4点赞 8收藏 1评论 习惯了手机自带的日历天气类App,来点新鲜感?这些App美到令人窒息!话不多说,上干货! 01 有期 用途:日历 支持:iOS/Andriod 今夕何夕? 「有期」这款 App 给

神经网络理论及应用答案,神经网络理论名词解释_幸福的小肥熊的博客-爱代码爱编程

形色app用的卷积神经网络的什么模型 CNN卷积神经网络是一种深度模型。它其实老早就已经可以成功训练并且应用了(最近可能deeplearning太火了,CNNs也往这里面靠。 虽然CNNs也属于多层神经网络架构,但把它置身于DL家族,还是有不少人保留自己的理解的)。 它在原始的输入中应用可训练的滤波器trainablefilters和局部邻域池化操作

android 13 wi-fi状态机流程及log分析_我想我思的博客-爱代码爱编程

本文基于Android 13源码解读,对Wi-Fi状态机调用流程进行梳理,并结合Log进行分析,便于大家理解Wi-Fi模块调用流程。 梳理出Wi-Fi状态机共有如下几种状态: mConnectableState mConnectingOrConnectedState mL2ConnectingState mL2ConnectedState mL

fiddler利用edxposed框架+trustmealready来突破ssl pinning抓取手机app数据_trustmealeady模块-爱代码爱编程

一、背景 在使用fiddler做代理抓取应用数据包时,如果要抓取到HTTPS数据,需要将fiddler证书导入到浏览器或手机。浏览器或手机设置好fiddler的代理地址,即可抓取到https数据包。 如果APP应用采用证书锁定后,将无法抓取到https数据,因为此时APP应用校验证书不通过,通常APP应用会断开网络连接,防止网络传输数据被抓取。 自从

王学岗音视频开发(二)—————opengles开发实践_glcleardepthf-爱代码爱编程

shader地址 矩阵以及矩阵运算 上图就是m x a 的矩阵 1x3+0x2+2x1 :为左侧第一行乘以右侧第一列。 1x1+0x1+2x0 :为左侧第一行乘以右侧第二列。 -1x3+3x2+1x1:为左侧第二