Java Recyclerview在片段中,跳过布局未连接适配器
我正在尝试设置一个RecycleView,但是在initRecycleView上不断出现错误,它说没有适配器连接的跳过布局 我试着为RecyclerView调用一个新的构造函数 RecyclerView RecyclerView=新的RecyclerViewgetContext 这将导致跳过布局,但如果我删除该布局并尝试此操作 RecyclerView RecyclerView=getView.findViewByIdR.id.RecyclerView 这将导致调用虚拟方法空对象引用 公共类HomeFragment扩展了片段{ 私有静态最终字符串标记=HomeFragment; //瓦尔斯 private ArrayList mImage=新建ArrayList; private ArrayList mTitle=新的ArrayList; private ArrayList mDesc=新建ArrayList; @可空 @凌驾 公众观点onCreateView@NonNull布局扁平充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState{ Log.dTAG,onCreateView:已启动; 初始化位图图像; 返回充气器.充气器.layout.fragment_home,容器,假; } 私有void initBitMapImage{ Log.dTAG,initBitmapImages:准备位图; 模仿。addhttps://i.redd.it/j6myfqglup501.jpg; mTitle.addFoto 1; mDesc.add这是foto 1; 模仿。addhttps://i.redd.it/j6myfqglup501.jpg; mTitle.addFoto 2; mDesc.add这是foto 2; 模仿。addhttps://i.redd.it/j6myfqglup501.jpg; mTitle.addFoto 3; mDesc.add这是foto 3; 模仿。addhttps://i.redd.it/j6myfqglup501.jpg; mTitle.addFoto 4; mDesc.add这是foto 4; 模仿。addhttps://i.redd.it/j6myfqglup501.jpg; mTitle.addFoto 5; mDesc.add这是foto 5; 模仿。addhttps://i.redd.it/j6myfqglup501.jpg; mTitle.addFoto 6; mDesc.add这是foto 6; 模仿。addhttps://i.redd.it/j6myfqglup501.jpg; mTitle.addFoto 7; mDesc.add这是foto 7; 模仿。addhttps://i.redd.it/j6myfqglup501.jpg; mTitle.addFoto 8; mDesc.add这是foto 8; initRecyclerView; } 私有void initRecyclerView{ Log.dTAG,initRecyclerView:init recyclerView; RecyclerView RecyclerView=getView.findViewByIdR.id.RecyclerView; RecycleServiceAdapter=新的RecycleServiceAdapterImage、mTitle、mDesc、getContext; recyclerView.setAdapteradapter; recyclerView.SetLayoutManagerNewLinearLayoutManagerTargetContext; } } 我期望的实际输出是,在布局中,我可以输出我创建的recycleview:试试这可能会有所帮助Java Recyclerview在片段中,跳过布局未连接适配器,java,android,android-recyclerview,android-studio-3.0,Java,Android,Android Recyclerview,Android Studio 3.0,我正在尝试设置一个RecycleView,但是在initRecycleView上不断出现错误,它说没有适配器连接的跳过布局 我试着为RecyclerView调用一个新的构造函数 RecyclerView RecyclerView=新的RecyclerViewgetContext 这将导致跳过布局,但如果我删除该布局并尝试此操作 RecyclerView RecyclerView=getView.findViewByIdR.id.RecyclerView 这将导致调用虚拟方法空对象引用 公共类Ho
public class HomeFragment extends Fragment {
private static final String TAG = "HomeFragment";
//Vars
private ArrayList<String> mImage = new ArrayList<>();
private ArrayList<String> mTitle = new ArrayList<>();
private ArrayList<String> mDesc = new ArrayList<>();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// initialize container view
View view = inflater.inflate(R.layout.fragment_home, container, false);
// pass container view to bitmap images so that will use to initialize recyclerView
initBitmapImages(view);
return view;
}
private void initBitmapImages(View view){
Log.d(TAG, "initBitmapImages: preparing bitmaps");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 1");
mDesc.add("This is foto 1");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 2");
mDesc.add("This is foto 2");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 3");
mDesc.add("This is foto 3");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 4");
mDesc.add("This is foto 4");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 5");
mDesc.add("This is foto 5");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 6");
mDesc.add("This is foto 6");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 7");
mDesc.add("This is foto 7");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 8");
mDesc.add("This is foto 8");
// container view uses to initialize recycle view
initRecyclerView(view);
}
private void initRecyclerView(View view){
Log.d(TAG, "initRecyclerView: init recyclerView");
// Initialize recycle view which exist in parent container view so it found and initialize
RecyclerView recyclerView = view.findViewById(R.id.recyclerView);
RecyclerViewAdapter adapter = new RecyclerViewAdapter(mImage,mTitle,mDesc,getContext());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
}
}
如果有帮助的话,谢谢你。实际上findViewById需要视图来搜索,所以在以前的代码中,它没有找到回收视图,所以我改为代码,并为findViewById提供片段视图,以便它可以在其中找到并初始化itI。我在注释中更新了我的答案,并做了一些解释。我试着解释可能会有帮助