Вызов меню пользовательских параметров при работе веб-просмотра - PullRequest
0 голосов
/ 29 февраля 2012

Я хочу вызвать мою функцию onCreateOptionsMenu, когда кнопка меню нажата, когда мой веб-просмотр работает.Прямо сейчас, когда вы нажимаете кнопку Memnu во время работы Webview, она отображает меню по умолчанию, а не мое пользовательское меню.

Как изменить код ниже, чтобы отключить меню по умолчанию и отобразить мое пользовательское меню?Когда веб-представление не запущено, оно отображает мое пользовательское меню при нажатии кнопки меню.

public class WebViewActivity extends Activity {
    WebView mWebView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        final Activity mActivity = this;
        super.onCreate(savedInstanceState);

        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.main);
        // SETS DEFAULT MODE TO LANDSCAPE
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        // Makes Progress bar Visible
        getWindow().setFeatureInt(Window.FEATURE_PROGRESS,
            Window.PROGRESS_VISIBILITY_ON);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://Google.com");

        mWebView.setWebChromeClient(new WebChromeClient() {

            public void onProgressChanged(WebView view, int progress) {
                mActivity.setTitle("Google.com");
                mActivity.setProgress(progress * 100);
            }
        });
    }

    public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_MENU) { 
        // do your menu stuff here 

        return true; 
    } 
        else 
        return super.onKeyDown(keyCode, event); 
    } 


        @Override
        public boolean onCreateOptionsMenu(Menu menu){
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.mymenu, menu);
            return true;
        }
}

1 Ответ

1 голос
/ 29 февраля 2012

Вы должны переопределить функцию onKeyDown, чтобы перехватить клавишу меню. В противном случае веб-просмотр будет использовать его. Примерно так:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_MENU) {
        // do your menu stuff here

        return true;
    }
        else
        return super.onKeyDown(keyCode, event);
}
...