找不到符号方法setContentView(int)

时间:2015-11-26 14:12:35

标签: android android-fragments android-studio

我正在尝试构建一个Android应用程序,但我遇到了同样的错误。 Android Studio找不到符号方法setContentView(int)和findViewById(int)。 这是代码:

public class NewsFragment extends Fragment {


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_news);

    WebView mainWebView = (WebView) findViewById(R.id.mainWebView);

    WebSettings webSettings = mainWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    mainWebView.setWebViewClient(new MyCustomWebViewClient());
    mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

    mainWebView.loadUrl("http://www.google.com");
}

private class MyCustomWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

任何想法?

2 个答案:

答案 0 :(得分:3)

您使用的是Fragment,而不是Activity。如果您想使用活动,请让您的班级实施Activity而不是Fragment

如果你想使用Fragment,你应该在onCreateView中设置视图,如下所示:

private WebView mainWebView;
protected View onCreateView(LayoutInflater inflater, ViewGroup vg, Bundle data){
    View view = inflate.inflate(R.layout.fragment_news,vg,false);
    mainWebView = (WebView) view.findViewById(R.id.mainWebView);
    return view;
}

答案 1 :(得分:1)

您正在展开FragmentsetContentView是一种不属于Fragment的活动方法。您可以更改类以扩展Activity或继续使用Fragment并覆盖onCreateView来扩充并返回fragment_news的实例,并使用它来检索它包含的小部件