我是android工作室的新手,我试图在fragment上创建recyclerview。我在遵循一个教程,但我仍然得到消息'无法解决'findviewbyid'
我试过做:
RecyclerView recyclerView = (RecyclerView)getView().findViewById(R.id.recyclerView);
但最终收到错误:
Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
代码如下:
package com.example.app;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Articles extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NewsList[] myListData = new NewsList[] {
new NewsList("Article 1", "Some Author"),
new NewsList("Article2", "Some Author"),
new NewsList("Article3", "Some Author"),
};
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
NewsAdapter adapter = new NewsAdapter(myListData);
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(adapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_create, container, false);
}
}
如何解决此问题?
3条答案
按热度按时间piah890a1#
例如,list(mylistdatae)必须作为字段变量位于newsadapter类中。
snvhrwxg2#
添加以下变量:
将oncreateview更改为:
最后-确保xml文件中的recyclerview具有以下内容:
ykejflvf3#
你的观点还没有膨胀,这就是为什么它找不到的原因。将代码从
onCreate
至onViewCreated
碎片生命周期。