首頁 > 其他

Android開發學習:[25]Android獲取天氣預報

2019-12-11 07:39:30

本經驗將介紹Android如何獲取天氣預報主要使用了中國天氣網的介面,使用webView顯示。

1

首先我們開啟下載安裝好的Android Studio然後新建一個專案,我這裡為了方便就直接新增一個Activity了


2

然後我們新增介面布局程式碼,佈局如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:gravity="center_horizontal"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

    <LinearLayout

        android:orientation="horizontal"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        >

        <Button

            android:id="@+id/bj"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/bj" />

        <Button

            android:id="@+id/sh"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/sh" />

        <Button

            android:id="@+id/heb"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/heb" />

        <Button

            android:id="@+id/cc"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/cc" />

        <Button

            android:id="@+id/sy"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/sy" />

        <Button

            android:id="@+id/gz"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/gz" />

    </LinearLayout>

    <WebView android:id="@+id/webView1"

        android:layout_width="wrap_content"

        android:layout_height="0dip"

        android:focusable="false"

        android:layout_weight="1"

        />

</LinearLayout>


3

然後我們新增後臺程式碼:

package com.basillee.asus.demo;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.webkit.WebChromeClient;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.widget.Button;

public class MainActivity7 extends Activity implements OnClickListener {

    private WebView webView;//宣告WebView元件的物件

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main_activity7);

        webView=(WebView)findViewById(R.id.webView1);//獲取WebView元件

        webView.getSettings().setJavaScriptEnabled(true);//設定JavaScript可用

        webView.setWebChromeClient(new WebChromeClient());//處理JavaScript對話方塊

        webView.setWebViewClient(new WebViewClient());//處理各種通知和請求事件,如果不使用該句程式碼,將使用內建瀏覽器存取網頁

        webView.loadUrl("http://m.weather.com.cn/m/pn12/weather.htm ");//設定預設顯示的天氣預報資訊

        webView.setInitialScale(57*4);//放網頁內容放大4倍

        Button bj=(Button)findViewById(R.id.bj);//獲取布局管理器中新增的「北京」按鈕

        bj.setOnClickListener(this);

        Button sh=(Button)findViewById(R.id.sh);//獲取布局管理器中新增的「上海」按鈕

        sh.setOnClickListener(this);

        Button heb=(Button)findViewById(R.id.heb);//獲取布局管理器中新增的「哈爾濱」按鈕

        heb.setOnClickListener(this);

        Button cc=(Button)findViewById(R.id.cc);//獲取布局管理器中新增的「長春」按鈕

        cc.setOnClickListener(this);

        Button sy=(Button)findViewById(R.id.sy);//獲取布局管理器中新增的「瀋陽」按鈕

        sy.setOnClickListener(this);

        Button gz=(Button)findViewById(R.id.gz);//獲取布局管理器中新增的「廣州」按鈕

        gz.setOnClickListener(this);

    }

    @Override

    public void onClick(View view){

        switch(view.getId()){

            case R.id.bj://單擊的是「北京」按鈕

                openUrl("101010100T");

                break;

            case R.id.sh://單擊的是「上海」按鈕

                openUrl("101020100T");

                break;

            case R.id.heb://單擊的是「哈爾濱」按鈕

                openUrl("101050101T");

                break;

            case R.id.cc://單擊的是「長春」按鈕

                openUrl("101060101T");

                break;

            case R.id.sy://單擊的是「瀋陽」按鈕

                openUrl("101070101T");

                break;

            case R.id.gz://單擊的是「廣州」按鈕

                openUrl("101280101T");

                break;

        }

    }

    //開啟網頁的方法

    private void openUrl(String id){

        webView.loadUrl("http://m.weather.com.cn/m/pn12/weather.htm?id="+id+" ");//獲取並顯示天氣預報資訊

    }

}


4

然後我們點選Android Studio上面的執行按鈕:


5

這裡要存取網路我們要新增許可權:   

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


6

我們然後可以在模擬器上面可以看到獲取的天氣情況



IT145.com E-mail:sddin#qq.com