如何在片段中的 recyclerview 中膨胀 recyclerviewadapter?

how to inflate recyclerviewadapter in recyclerview in fragment?

我的SavedActivity.java:

public class SavedActivity extends Fragment {
private static final String MyApp = "/MyApp";
RecyclerView RecyclerViewMediaList;
LinearLayoutManager mLinearLayoutManager;
public SavedActivity() {
    // Required empty public constructor
}


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View inflatedView = inflater.inflate(R.layout.activity_saved, container, false);
    RecyclerViewMediaList = (RecyclerView)container.findViewById(R.id.recycler_View);
adaptRecyclerView();
return inflatedView;
 private ArrayList<File> getListFiles(File parentDir) {
    ArrayList<File> inFiles = new ArrayList<>();
    File[] files;
    files = parentDir.listFiles();
    if (files != null) {
        for (File file : files) {
            if (file.getName().endsWith(".jpg"))
            {
                if (!inFiles.contains(file))
                    inFiles.add(file);
            }
        }
    }
    return inFiles;
}

public void adaptRecyclerView(){

    mLinearLayoutManager = new LinearLayoutManager(getContext());
    RecyclerViewMediaList.setLayoutManager(mLinearLayoutManager);
    RecyclerViewAdapterSaved recyclerViewMediaAdapter = new RecyclerViewAdapterSaved(this.getListFiles(new File(Environment.getExternalStorageDirectory().toString()+ MyApp)), getActivity());
    RecyclerViewMediaList.setAdapter(recyclerViewMediaAdapter);
}

我的RecyclerViewAdapterSaved.java:

public class RecyclerViewAdapterSaved extends RecyclerView.Adapter<RecyclerViewAdapterSaved.FileHolder> {
private ArrayList<File> filesList;
Activity activity;


public RecyclerViewAdapterSaved(ArrayList<File> filesList, Activity activity) 
{
    this.filesList = filesList;
    this.activity = activity;

}

@Override
public RecyclerViewAdapterSaved.FileHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View inflatedView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_adapter_saved, parent, true);
    return new FileHolder(inflatedView);
}
@Override
public void onBindViewHolder(final RecyclerViewAdapterSaved.FileHolder holder, final int position) {
    final File currentFile = filesList.get(position);
showImages(currentFile,holder,position);
public void showImages(final File currentFile, final RecyclerViewAdapterSaved.FileHolder holder, final int position){
    holder.cardviewImageViewSaved.setVisibility(View.VISIBLE);
    Bitmap myBitmap = BitmapFactory.decodeFile(currentFile.getAbsolutePath());
    holder.imageViewSaved.setImageBitmap(myBitmap);
}
}

我试图在 activity_saved.xml 中提供的 RecyclerView 中膨胀 recycler_view_adapter_saved.xml 当我尝试这样做时,代码运行良好,但上面的 RecyclerView.is 中没有视图代码是正确的膨胀布局?还是有任何其他方法可以做到这一点?在更改 View inflatedView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_adapter_saved, parent, false); 它正在另一个片段中显示输出。

试试这个,你必须 return 将在 fragment 上膨胀的视图在 onCreateView 方法上

public class SavedActivity extends Fragment {
    private static final String MyApp = "/MyApp";
    RecyclerView recyclerViewMediaList;
    LinearLayoutManager mLinearLayoutManager;
    public SavedActivity() {
        // Required empty public constructor
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflatedView = inflater.inflate(R.layout.activity_saved, container, false);
        recyclerViewMediaList = (RecyclerView)container.findViewById(R.id.recycler_View);
        adaptRecyclerView(); 
        return inflatedView;
    }

    public void adaptRecyclerView(){
        mLinearLayoutManager = new LinearLayoutManager(getContext());
        recyclerViewMediaList.setLayoutManager(mLinearLayoutManager);
        RecyclerViewAdapterSaved recyclerViewMediaAdapter = new RecyclerViewAdapterSaved(this.getListFiles(new File(Environment.getExternalStorageDirectory().toString()+ MyApp)), getActivity());
        recyclerViewMediaList.setAdapter(recyclerViewMediaAdapter);
    }

    private ArrayList<File> getListFiles(File parentDir) {
        ArrayList<File> inFiles = new ArrayList<>();
        File[] files;
        files = parentDir.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.getName().endsWith(".jpg")) {
                    if (!inFiles.contains(file))
                        inFiles.add(file);
                }
            }
        }
    }
}

在您的 Viewholder 中试试这个

    View inflatedView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_adapter_saved, parent, false);