Q:

Inflating json data via Adapter

I'm trying to inflate json data onto my List Item and I'm getting a blank Screen. The data I'm trying to show is from a nested json array. So I have created to Objects using retrofit and gson. I have made 2 objects (Cake and Ingredients) and the ingredients is a of List<> type.I have also provided an image of the json file. 
public class CakesItem  {

    @SerializedName("id")
    private int mId;

    @SerializedName("name")
    private String mName;

    @SerializedName("ingredients")
    private List<Ingredient> mIngredients;

    public int getmId() {
        return mId;
    }

    public String getmName() {
        return mName;
    }

    public List<Ingredient> getmIngredients() {
        return mIngredients;
    }

}

public class Ingredient implements Parcelable {

    private double quantity;

    private String measure, ingredient;

    public String getmMeasure() {
        return measure;
    }

    public double getmQuantity() {
        return quantity;
    }

    public String getmIngredient() {
        return ingredient;
    }

}

public class IngredientsAdapter extends RecyclerView.Adapter<IngredientsAdapter.IngredientsHolder> {

    private List<Ingredient> ingredients = new ArrayList<>();

    @NonNull
    @Override
    public IngredientsHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {

        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.ingredient_list_item, parent, false);
        return new IngredientsHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final IngredientsHolder Holder, int position) {

        Holder.onBind(ingredients.get(position));

    }

    @Override
    public int getItemCount() {
        return ingredients.size();
    }

    void getIngredientsData(List<Ingredient> ingredients) {
        this.ingredients.clear();
        this.ingredients = ingredients;
        notifyDataSetChanged();
    }

    class IngredientsHolder extends RecyclerView.ViewHolder {

        private final TextView mIngredientsTV;

        IngredientsHolder(@NonNull View itemView) {
            super(itemView);

            mIngredientsTV = itemView.findViewById(R.id.ingredients_list_tv);
        }

        void onBind(Ingredient ingredients) {
            mIngredientsTV.setText(formatString(ingredients.getmIngredient(), String.valueOf(ingredients.getmQuantity()), ingredients.getmMeasure()));
        }

        private String formatString(String i, String q, String m) {
            return " (" + q + " " + m + ") " + i;
        }
    }
}

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recipe_detail);

        mIngredientsList = new ArrayList<>();
        IngredientsAdapter ingredientsAdapter = new IngredientsAdapter();
        ingredientsRecyclerView = findViewById(R.id.ingredients_recycler_view);
        ingredientsRecyclerView.setHasFixedSize(true);
        ingredientsRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        ingredientsRecyclerView.setAdapter(ingredientsAdapter);

        ingredientsAdapter.getIngredientsData(mIngredientsList);

        mRecipeImage = findViewById(R.id.recipe_cake_image_iv);
        Drawable myDrawable = getResources().getDrawable(R.drawable.nutella_pie_2);
        mRecipeImage.setImageDrawable(myDrawable);

        mCakeTitle = findViewById(R.id.cake_title);
        mCakeTitle.setText("Nutella Pie");

    }

A:

Where do you parse the JSON to object? From the code you just set an empty list to your adapter. 
Try:
In MainActivity:
@Override
public void onItemClicked(CakesItem cakesItem) {
    Intent detailIntent = new Intent(this, recipe_detail.class);
    detailIntent.putExtra("Ingredients", cakesItem.getmIngredients());
    startActivity(detailIntent);
}

In recipe_detail:
private List<Ingredient> mIngredientsList = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    mIngredientsList = getIntent().getSerializableExtra("Ingredients");;
    IngredientsAdapter ingredientsAdapter = new IngredientsAdapter();
    ingredientsAdapter.getIngredientsData(mIngredientsList);
    ...
}

