Android webViewをオプションメニューでの呼び出し方を教えてください。
package com.example.makki.webviewex;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class WebViewEx extends ActionBarActivity {
//メニューアイテムID
private static final int MENU_ITEM0 = 0;
private static final int MENU_ITEM1 = 1;
private static final int MENU_ITEM2 = 2;
private static final int MENU_ITEM3 = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view_ex);
//Weビューの作成
WebView webView = new WebView(this);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(false);
settings.setSupportZoom(false);
//リンクをタップしたときに標準ブラウザを起動させない
webView.setWebViewClient(new WebViewClient());
//Weビューの通知リクエストの処理
webView.setWebViewClient(new WebViewClient() {
//URジャンプ時前に呼ばれる
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//外部ブラウザではなく内部ブラウザを利用
return false;
}
//エラー時に呼ばれる
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String url) {
toast("通信エラーです。");
}
});
setContentView(webView);
//HTMの読み込み
webView.loadUrl("https://www.google.co.jp/");
}
//トーストの表示
private void toast(String text){
if (text == null)text = "";
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
}
//オプションメニューの生成
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_web_view_ex, menu);
//オプションメニューへのアイテム0追加
MenuItem item0 = menu.add(0,MENU_ITEM0,0,"ログイン");
item0.setIcon(android.R.drawable.ic_menu_camera);
//オプションメニューへのアイテム0追加
MenuItem item1 = menu.add(0,MENU_ITEM1,0,"項目1");
item0.setIcon(android.R.drawable.ic_menu_camera);
//オプションメニューへのアイテム0追加
MenuItem item2 = menu.add(0,MENU_ITEM2,0,"項目2");
item0.setIcon(android.R.drawable.ic_menu_camera);
//オプションメニューへのアイテム0追加
MenuItem item3 = menu.add(0,MENU_ITEM3,0,"押してはいけない");
item0.setIcon(android.R.drawable.ic_menu_camera);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int itemId = item.getItemId();
if(itemId == MENU_ITEM0){
toast("ログインを押した");
webView.loadUrl("https://accounts.google.com/ServiceLogin?hl=ja&continue=https://www.google.co.jp/#identifier");
}else if(itemId == MENU_ITEM3){
toast("ダメよダメダメ");
}
//noinspection SimplifiableIfStatement
if (itemId == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
質問です。
オプションメニューでログインを選択した時にwebViewを呼び出したいのですが、
どのように書けばいいのでしょうか?
このソースですと「toast("ログインを押した");」の行の下が間違っているようです。
画面の動きで説明すると、アプリ起動時はgoogle検索画面、オプションメニューからログインを選択した時にグーグルのログイン画面に遷移すれば良いです。
よろしくお願いします。