Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Recyclerview在片段中,跳过布局未连接适配器_Java_Android_Android Recyclerview_Android Studio 3.0 - Fatal编程技术网

Java Recyclerview在片段中,跳过布局未连接适配器

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

我正在尝试设置一个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:

试试这可能会有所帮助

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。我在注释中更新了我的答案,并做了一些解释。我试着解释可能会有帮助