【Android】WebViewの設置とWebView内でのURLのロード
ActivityにWebViewを設置して、任意のURLをWebViewの中で表示したいじゃないですか。
ざっくりまとめ
- WebViewタグをxmlに追加
- ActivityにてWebViewを取得し、loadUrlメソッドを呼ぶ
- デフォルトブラウザを開くな!
WebViewタグをxmlに追加

結果こうなる。Designのほうから置いたほうが早いかも。xml直接編集でもいいけど。
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.otiai10.chantroid.RoomActivity">
- <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ <WebView
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:id="@+id/oppaiWebView"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentStart="true" />
</RelativeLayout>
ActivityにてWebViewを取得し、loadUrlメソッドを呼ぶ
Androidだいぶ慣れてきたので、たぶんActivityの中からViewを取得して、そのメソッド呼ぶんだろうなと思って書いたらその通りだった。
(死亡フラグ)
@@ -12,6 +14,11 @@ public class RoomActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_room); + + // ここでWebViewの中身をつくる + WebView oppaiWV = (WebView)this.findViewById(R.id.oppaiWebView); + oppaiWV.loadUrl("http://google.com"); }
デフォルトブラウザを開くな!
喜んでRunしたら、なぜか http://google.com がChromeで開いちゃう。なんでやねんと思って調べたら、以下のやつだった。
- Android - Android loadurlを呼び出すとwebviewからブラウザが起動される(1370)|teratail
- Building Web Apps in WebView | Android Developers
To open links clicked by the user, simply provide a
WebViewClientfor yourWebView, usingsetWebViewClient().
以下を追加
setContentView(R.layout.activity_room);
// ここでWebViewの中身をつくる
WebView oppaiWV = (WebView)this.findViewById(R.id.oppaiWebView);
+ oppaiWV.setWebViewClient(new WebViewClient());
oppaiWV.loadUrl("http://google.com");
}
これで、このActivityが生まれたとき、WebViewにhttp://google.comが表示されている感じになった。やったー
DRY