0

フラグメントを使用して小さな Android 4 アプリケーションを作成しました。これらすべてのフラグメントには、いくつかの Web ビューがあり、別のフラグメントをクリックすると、別の Web サイトを読み込む必要があります。

私は今持っていTabOne.javaます。TabTwo.java; TabThree.java等々。

私も疑問に思っていました: などを必要とせずにこのアプリケーションを作成できますかTabOne.java? TabTwo.javaからのみMainActivity.java?つまり、単一の を持ち、WebView異なるタブをクリックすると、これWebViewは異なる URL をロードします (選択したタブに従って)。これが不可能な場合は、何が問題なのか教えていただけますか ( TabOne.java) :

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState)
{
    View view = inflater.inflate(R.layout.tabone, container, false);
    myWebView = (WebView) view.findViewById(R.id.webview);
    myWebView.getSettings().setPluginsEnabled(true);
    myWebView.loadUrl("http://m.stirileprotv.ro");
    myWebView = new WebView(getActivity());
    myWebView.setOnKeyListener(new OnKeyListener(){
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                  if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack())                              
            {
                        myWebView.goBack();
                        return true;
                    }
                    return false;
            }
    });
    myWebView.setWebViewClient(new WebViewClient() {
    @Override public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (Uri.parse(url).getHost().equals("m.stirileprotv.ro")) {
                myWebView.loadUrl(url);
                return true;
            }
            else
            {
                return false;
            }
         }
    });
    return view;
}
4

2 に答える 2

0

私がしたことは、それをアクティビティ内に実装してから、パブリック静的にすることでした:

主なアクティビティでは:

public class MainActivity extends FragmentActivity{
    public static WebView myWebView;
    ...

    @Override
    public void onBackPressed() {
        if (getSupportFragmentManager().findFragmentByTag("yourtag") != null) {
            if(myWebView.canGoBack())
                myWebView.goBack();
            else {
                super.onBackPressed();
            }
        }
        else
            super.onBackPressed();
    }
    ...
}

フラグメント内で参照するには:

MainActivity.myWebView = (WebView) getView().findViewById(R.id.webview);

フラグメントを作成するときは、必ずタグを追加してください

transaction.replace(R.id.yourfragid, newfragment, "yourtag");
于 2013-06-05T23:18:42.170 に答える