本經驗將介紹Android如何獲取天氣預報主要使用了中國天氣網的接口,使用webView顯示。
工具/原料
Android Studio
方法/步驟
首先我們打開下載安裝好的Android Studio然後新建一個項目,我這裡為了方便就直接添加一個Activity了
然後我們添加界面佈局代碼,佈局如下:
android:gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
android:id="@+id/bj"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bj" />
android:id="@+id/sh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sh" />
android:id="@+id/heb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/heb" />
android:id="@+id/cc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cc" />
android:id="@+id/sy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sy" />
android:id="@+id/gz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gz" />
android:layout_width="wrap_content"
android:layout_height="0dip"
android:focusable="false"
android:layout_weight="1"
/>
然後我們添加後臺代碼:
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(";+id+" "); //獲取並顯示天氣預報信息
}
}
然後我們點擊Android Studio上面的運行按鈕:
這裡要訪問網絡我們要添加權限:
我們然後可以在模擬器上面可以看到獲取的天氣情況
注意事項
本系列經驗喜歡的可以在下面系列經驗查看