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
WebViewClient
for 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