Pregunta

Quiero llamar a mi función OnCreeEoptionsMenu cuando se hace clic en el botón MENÚ cuando se ejecuta mi WebView.En este momento, cuando hace clic en el botón MEMNU cuando el webview se está llevando a cabo, muestra algún menú predeterminado, no es mi menú personalizado.

¿Cómo modificaría mi código a continuación para deshabilitar el menú predeterminado y mostrar mi menú personalizado?Cuando la vista web no se está ejecutando, muestra mi menú personalizado cuando hace clic en el botón MENÚ.

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;
        }
}

¿Fue útil?

Solución

Tiene que anular la función ONKEYDAYDOPT, para interceptar la tecla MENÚ.De lo contrario, el webview lo consumirá.Algo así:

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);
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top