Android開発 虎の巻

ネットワーク

■http通信

UIスレッドを操作するためのハンドラ宣言

Handler mHandler = new Handler();

new Thread(new Runnable() {
    @Override
    public void run() {
    	try{
            URL url = new URL("http://www.dicre.com/work/test.html");
            HttpURLConnection con = (HttpURLConnection)url.openConnection();
            //con.setRequestMethod("GET");
            con.connect();
            
            BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
            final StringBuilder sb = new StringBuilder();
            String str;
            while((str = br.readLine()) != null){
            	sb.append(str);
            }
            con.disconnect();
            
            mHandler.post(new Runnable() {
                public void run() {
                	TextView tv = (TextView)findViewById(R.id.textView1);
                	tv.setText(sb.toString());
                }
            });
            
        } catch(Exception ex) {
        	
        }
    }

}).start();		



■WebView

Webページを表示するView。

<WebView android:id="@+id/webView1" android:layout_width="match_parent" android:layout_height="match_parent" />

onCreate内での準備

        WebView wv = (WebView)this.findViewById(R.id.webView1);

        wv.setWebViewClient(new WebViewClient());
        wv.getSettings().setJavaScriptEnabled(true);
        wv.loadUrl("http://www.yahoo.co.jp");

Backボタン対応

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub
		if(keyCode == KeyEvent.KEYCODE_BACK){
	        WebView wv = (WebView)this.findViewById(R.id.webView1);
			
			 if (wv.canGoBack()){
				 wv.goBack();
				return true;
			}
	
		}
		
		return super.onKeyDown(keyCode, event);
	}

ローカルhtml

プロジェクトのassets内にwwwフォルダを作りhtml等を設置

URLは file:///android_asset/www/index.html のようになる。

Android開発 虎の巻