OnKeyDown innen WebView-fragment

Machte ich einen Fragment mit einem WebView und ich wollte, um zu definieren, eine onKeyDown() um wieder von einer web-Seite zu der vorherigen. Ich Tat es, aber der verrückteste Teil war für mich zu teilen WebView variable aus meiner Fragment Klasse zu meinem Activity Klasse, da kann ich nicht definieren onKeyDown() im Fragment. Also ich habe gerade definiert eine get-Methode und machte es statisch. Aber ich Frage mich, ob es war ein echter Fehler und meine app kann ernsthaft Absturz in einigen Fällen.

Meine Fragment code:

public class BrowserFragment extends Fragment {
    private static WebView webView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){
        View v = inflater.inflate(R.layout.fragment_activity, parent, false);

        getActivity().setTitle(R.string.title_rus);

        webView = (WebView) v.findViewById(R.id.webView);
        webView.setWebViewClient(new SwingBrowserClient());
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        Uri data = Uri.parse("http://www.swinginmoscow.ru/m/");
        webView.loadUrl(data.toString());

        return v;
    }

    public static WebView getWebView() {
        return webView;
    }
}

Und meine Activity code:

public class MainBrowserActivity extends SingleFragmentActivity {

    @Override
    protected Fragment createFragment() {
        return new BrowserFragment();
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && BrowserFragment.getWebView().canGoBack()) {
            BrowserFragment.getWebView().goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}
InformationsquelleAutor Mabjik | 2014-04-22
Schreibe einen Kommentar