Android

【Android】 WebViewサンプルアプリ①-2

WebViewサンプルアプリの続きです。

まず、前回のツールバーが邪魔なので消します。


AndroidManifest.xml

AndroidManifestのstyleをTheme.AppCompat.NoActionBarに変更します。


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ....>

    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        ....
        android:theme="@style/Theme.AppCompat.NoActionBar">
    ....
</manifest>


activity_main.xml

これで、ツールバーが消えたので、
次はWebViewでの3種類のボタン(次へ、戻る、更新)を用意します。


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    ....>

   <RelativeLayout
        android:id="@+id/top_layout"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_alignParentTop="true"
        android:background="@android:color/white"
        android:orientation="horizontal">

        <Button
            android:id="@+id/back_button"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="戻る" />

        <Button
            android:id="@+id/forward_button"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_toRightOf="@+id/back_button"
            android:gravity="center"
            android:text="次へ" />

        <Button
            android:id="@+id/update_button"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            android:gravity="center"
            android:text="更新" /&gt

   </RelativeLayout>

   <WebView  
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/top_layout"
        />
</RelativeLayout>


MainActivity.java

次は、MainActivityに各ボタンの処理を書いていきます。

    private Button backButton;
    private Button forwardButton;
    private Button updateButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = (WebView) findViewById(R.id.webView);

        //Web内のリンクをタップしたときなどに標準ブラウザを起動しないように設定
        webView.setWebViewClient(new WebViewClient());

        //jacascriptを許可する
        webView.getSettings().setJavaScriptEnabled(true);

        // Google表示
        webView.loadUrl("https://www.google.co.jp");


        backButton = (Button) findViewById(R.id.back_button);
        forwardButton = (Button) findViewById(R.id.forward_button);
        updateButton = (Button) findViewById(R.id.update_button);

        backButton.setOnClickListener(clickListener);
        forwardButton.setOnClickListener(clickListener);
        updateButton.setOnClickListener(clickListener);

    }


    private View.OnClickListener clickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(v == backButton) {
                // 前のページに戻れるなら、前のページに戻る
                if(webView.canGoBack()) {
                    webView.goBack();
                }
            } else if(v == forwardButton) {
                // 次のページに進めるなら、次のページに進む
                if(webView.canGoForward()) {
                    webView.goForward();
                }
            } else if(v == updateButton) {
                // ページの更新
                webView.reload();
            }
        }
    };

・canGoBack()は前のページに戻れるかの判定を行います。
・goBack()は前のページに戻る処理です。
・canGoForwardは次のページに進めるかの判定を行います。
・goForward()は次のページに進む処理です。
・reload()はページの更新です。

ツールバーもなくなっていますし、
ボタンも配置されていますね。

今回は、これで終わりです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です