IllegalArgumentException:尝试 setView 时未找到片段 id 的视图

Posted

技术标签:

【中文标题】IllegalArgumentException:尝试 setView 时未找到片段 id 的视图【英文标题】:IllegalArgumentException: No view found for id for fragment when trying to setView 【发布时间】:2018-08-18 19:30:28 【问题描述】:

它说 IllegalArgumentException: No view found for id for fragment 当我尝试设置视图时。我知道问题出在第 3 行和第 4 行。它的 News.java 文件 news 是一个片段。

public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        getActivity().setContentView(R.layout.fragment_news);
        listView = (ListView) getActivity().findViewById(R.id.list);

        feedItems = new ArrayList<FeedItem>();

        listAdapter = new FeedListAdapter(this, feedItems);
        listView.setAdapter(listAdapter);

【问题讨论】:

至少贴出相关代码和异常。您在谈论片段,但发布了活动代码 【参考方案1】:

Fragment.java 文件如下代码:

@Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        View view =  inflater.inflate(R.layout.fragment_news, container, false);
        //ButterKnife.bind(this, view);

       init(view);

        return view;
    

之后在init 方法中输入以下代码:

private void init(View view)

listView = (ListView) view.findViewById(R.id.list);

    feedItems = new ArrayList<FeedItem>();

    listAdapter = new FeedListAdapter(this, feedItems);
    listView.setAdapter(listAdapter);
    

你也别忘了extends Fragment

【讨论】:

我按照你的建议做了,它有效,但它返回空白片段。我遵循本教程androidhive.info/2014/06/… 并有目的地在片段而不是活动上实现它。现在我不知道我需要做什么才能获得该提要。目前,它正在返回一个空的提要。里面什么都没有。 你可以关注哪个链接 我已经添加了链接和一些信息,非常感谢您的帮助

以上是关于IllegalArgumentException:尝试 setView 时未找到片段 id 的视图的主要内容,如果未能解决你的问题,请参考以下文章

IllegalArgumentException:无效的列纬度

Retrofit-IllegalArgumentException:意外的 url

引起:java.lang.IllegalArgumentException:属性'driverClassName'不能为空

IllegalArgumentException:接收方未注册

IllegalArgumentException 介绍

java.lang.IllegalArgumentException:基本 URI 不能为空