【问题标题】:IllegalArgumentException: No view found for id for fragment when trying to setViewIllegalArgumentException:尝试 setView 时未找到片段 id 的视图
【发布时间】: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);

【问题讨论】:

  • 至少贴出相关代码和异常。您在谈论片段,但发布了活动代码

标签: android fragment findviewbyid setcontentview


【解决方案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/… 并有目的地在片段而不是活动上实现它。现在我不知道我需要做什么才能获得该提要。目前,它正在返回一个空的提要。里面什么都没有。
  • 你可以关注哪个链接
  • 我已经添加了链接和一些信息,非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多