04番までだと、1つ前に戻ることができなくて不便です。ついでに「進む」も実装してみましょう。
まずはレイアウト定義ファイル(layout/linearlayout.xml)を開き、ボタンを2つ追加します。
(太字部分)
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/left_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="←" /> <Button android:id="@+id/right_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="→" /> <EditText android:id="@+id/addressbar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:lines="1" android:hint="検索キーワード" /> <Button android:id="@+id/ok_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="実行" /> </LinearLayout></LinearLayout>次にJavaコードを変更します。(太字部分を追加)
@Override protected void onCreate(Bundle savedInstanceState) { : : Button ok_button = (Button) findViewById(R.id.ok_button); ok_button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // TODO 自動生成されたメソッド・スタブ EditText addressbar = (EditText) findViewById(R.id.addressbar); String search_text = "https://www.google.co.jp/#q=" + addressbar.getText().toString(); webview.loadUrl(search_text); } }); Button left_button = (Button) findViewById(R.id.left_button); left_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(webview.canGoBack()) webview.goBack(); //① } }); Button right_button = (Button) findViewById(R.id.right_button); right_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(webview.canGoForward()) webview.goForward(); //② } }); : :①は「戻る」ボタンの実装です。if文で、
webview.canGoBack()
をチェックしています。読んで字の如く、戻ることができる状態か?という意味です。これがtrueのときに
webview.goBack()
を実行します。②も同様の考え方で「進む(元に戻る、を戻る)」ボタンも実装します。
これで、基本実装は完了です。