-2

My 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);
}

My 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);
}
}

I am trying to inflate recycler_view_adapter_saved.xml in a RecyclerView that is provided in activity_saved.xml when I try to do this the code works well but there are no views in RecyclerView.is the above code is correct to inflate layout?.or is there any other ways to do this?.while changeing View inflatedView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_adapter_saved, parent, false); it is displaying the output in another fragment.

2 Answers2

0

Try this, you must return the view that will be inflated on this fragment on the onCreateView method

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);
                }
            }
        }
    }
}
OroshiX
  • 712
  • 1
  • 8
  • 28
Tenten Ponce
  • 2,436
  • 1
  • 13
  • 40
0

Try this in your Viewholder

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