【问题标题】:cannot find symbol method setContentView(int)找不到符号方法 setContentView(int)
【发布时间】:2025-12-06 21:40:02
【问题描述】:

我正在尝试构建一个 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;
    }
}

有什么想法吗?

【问题讨论】:

    标签: android android-fragments android-studio


    【解决方案1】:

    你使用的是Fragment,而不是Activity。如果你想使用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;
    }
    

    【讨论】:

      【解决方案2】:

      您正在扩展 FragmentsetContentView 是 Activity 的方法而不是 Fragment。您可以更改您的类以扩展Activity 或继续使用Fragment 并覆盖onCreateView 以膨胀并返回fragment_news 的实例,并使用它来检索它包含的小部件

      【讨论】:

        最近更新 更多