title: How to show RecyclerView after a new activity is created, Android Firebase
body: <p>When my Home fragment uses regular buttons through intent to go to a new class. On the new class when I try to use <code>RecylerVie</code> and Firebase to show data, the data does not appear and the app crashes.</p>
  
  <p>On my Firebase the nodes go from  project --> to DataHome --> Home1. 
  Home 1 has the attributes description,directions, ingredients, image, title</p>
  
  <p>DataHome also has other nodes named Home2, etc. But in this case I'm only trying to show data from Home1 on this class.</p>
  
  <p><a href="https://i.stack.imgur.com/YEHEi.jpg" rel="nofollow noreferrer">database image</a></p>
  
  <p>The logcat says Fatal Exception Main: Process: com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.tmrecipes.Model.DataHome</p>
  
  <p>This is the class:</p>
  
  <pre><code>public class BeefSamosa extends AppCompatActivity {
  
  
      FirebaseDatabase mHomeFireBaseDatabase;
      RecyclerView myhomeview;
      private DatabaseReference DataHomeRef;
      private LinearLayoutManager mLinearLayoutManager;
  
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_beef_samosa);
          //Back Button
          getSupportActionBar().setDisplayShowHomeEnabled(true);
          getSupportActionBar().setDisplayHomeAsUpEnabled(true);
          getSupportActionBar().setTitle("Beef Samosa");
  
  
          //Recycler View
          myhomeview = findViewById(R.id.beefview);
          myhomeview.setHasFixedSize(true);
  
          //set layout as LinearLayout
          myhomeview.setLayoutManager(new LinearLayoutManager(this));
  
  
          //send query to firebase database
          mHomeFireBaseDatabase = FirebaseDatabase.getInstance();
          DataHomeRef = mHomeFireBaseDatabase.getInstance().getReference("DataHome").child("Home1");
  
  
      }
  
      @Override
      public boolean onOptionsItemSelected (MenuItem item){
          int id = item.getItemId();
  
          if(id == android.R.id.home){
              //ends the activity
              this.finish();
          }
          return super.onOptionsItemSelected(item);
      }
  
  
  
      @Override
      protected void onStart() {
          super.onStart();
  
  
          Query query = FirebaseDatabase.getInstance()
                  .getReference("DataHome")
                  .child("Home1");
  
          FirebaseRecyclerOptions&lt;DataHome&gt; options =
                  new FirebaseRecyclerOptions.Builder&lt;DataHome&gt;()
                          .setQuery(DataHomeRef, DataHome.class)
                          .build();
  
          FirebaseRecyclerAdapter&lt;DataHome,DataHomeViewHolder&gt; firebaseRecyclerAdapter = new FirebaseRecyclerAdapter&lt;DataHome, DataHomeViewHolder&gt;(options) {
              @NonNull
              @Override
              public DataHomeViewHolder onCreateViewHolder(ViewGroup parent, int viewtype) {
                  final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_home_deatil, parent, false);
  
                  return new DataHomeViewHolder(view);
  
              }
  
              @Override
              protected void onBindViewHolder(@NonNull DataHomeViewHolder holder, int position, @NonNull DataHome model) {
                      holder.setDetails(getApplicationContext(), model.getTitle(), model.getImage(), model.getDescription() , model.getIngredients(), model.getDirections());
              }
          };
  
          firebaseRecyclerAdapter.startListening();
          myhomeview.setAdapter(firebaseRecyclerAdapter);
      }
  
  
      //DataHomeViewHolder class
  
      public static class DataHomeViewHolder extends RecyclerView.ViewHolder {
  
  
          View mview;
  
  
          public DataHomeViewHolder(@NonNull View itemView) {
              super(itemView);
              mview = itemView;
  
  
  
          }
  
          public void setDetails(Context ctx, String title, String image, String description, String ingredients , String directions) {
  
              //Views
              TextView mHomeTitle = mview.findViewById(R.id.titlewords);
              ImageView mHomeImage = mview.findViewById(R.id.loading_pic);
              TextView mDescriptionTitle = mview.findViewById(R.id.descriptionwords);
              TextView mIngredientsTitle = mview.findViewById(R.id.ingredientwords);
              TextView mDirectionsTitle = mview.findViewById(R.id.directionwords);
  
              //Set data to views
              mHomeTitle.setText(title);
              mDescriptionTitle.setText(description);
              mIngredientsTitle.setText(ingredients);
              mDirectionsTitle.setText(directions);
              Picasso.get().load(image).into(mHomeImage);
  
          }
  
  
      }
  }
  </code></pre>
  
  <p>My model class is:</p>
  
  <pre><code> public class DataHome {
  
          public String title ,image, description, ingredients, directions;
  
          public String getTitle() {
              return title;
          }
  
          public void setTitle(String title) {
              this.title = title;
          }
  
          public String getImage() {
              return image;
          }
  
          public void setImage(String image) {
              this.image = image;
          }
  
          public String getDescription() {
              return description;
          }
  
          public void setDescription(String description) {
              this.description = description;
          }
  
          public String getIngredients() {
              return ingredients;
          }
  
          public void setIngredients(String ingredients) {
              this.ingredients = ingredients;
          }
  
          public String getDirections() {
              return directions;
          }
  
          public void setDirections(String directions) {
              this.directions = directions;
          }
  
          public DataHome(String title, String image, String description, String ingredients, String directions){
              this.title =title;
              this.image = image;
              this.description = description;
                  this.ingredients = ingredients;
                  this.directions=directions;
              }
  
      }
  </code></pre>
  
  <p>Edit: The changed class is: </p>
  
  <p>public class BeefSamosa extends AppCompatActivity {</p>
  
  <p>private FirebaseRecyclerAdapter firebaseRecyclerAdapter;</p>
  
  <pre><code>@Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_beef_samosa);
      //Back Button
      getSupportActionBar().setDisplayShowHomeEnabled(true);
      getSupportActionBar().setDisplayHomeAsUpEnabled(true);
      getSupportActionBar().setTitle("Beef Samosa");
  
  
      RecyclerView recyclerView = findViewById(R.id.beef_view);
      recyclerView.setLayoutManager(new LinearLayoutManager(this));
  
      DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
      Query query = rootRef.child("DataHome");
  
      FirebaseRecyclerOptions&lt;DataHome&gt; firebaseRecyclerOptions = new FirebaseRecyclerOptions.Builder&lt;DataHome&gt;()
              .setQuery(query, DataHome.class)
              .build();
  
  
      firebaseRecyclerAdapter = new FirebaseRecyclerAdapter&lt;DataHome, DataHomeViewHolder&gt;(firebaseRecyclerOptions) {
          @Override
          protected void onBindViewHolder(@NonNull DataHomeViewHolder dataHomeViewHolder, int position, @NonNull DataHome dataHome) {
              dataHomeViewHolder.setDataHome(dataHome);
          }
  
          @Override
          public DataHomeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
              View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.homedetail, parent, false);
  
              return new DataHomeViewHolder(view);
          }
      };
      recyclerView.setAdapter(firebaseRecyclerAdapter);
  
  }
  
  @Override
  protected void onStart() {
      super.onStart();
      firebaseRecyclerAdapter.startListening();
  }
  
  @Override
  protected void onStop() {
      super.onStop();
  
      if (firebaseRecyclerAdapter!= null) {
          firebaseRecyclerAdapter.stopListening();
      }
  }
  
  
  @Override
  public boolean onOptionsItemSelected (MenuItem item){
      int id = item.getItemId();
  
      if(id == android.R.id.home){
          //ends the activity
          this.finish();
      }
      return super.onOptionsItemSelected(item);
  }
  
  
  
  
  
  //DataHomeViewHolder class
  
  private class DataHomeViewHolder extends RecyclerView.ViewHolder {
  
      private TextView imagetoo, titletext, description, ingredients, directions;
  
  
      DataHomeViewHolder(View itemView){
          super(itemView);
          imagetoo = itemView.findViewById(R.id.imagetoo);
          titletext = itemView.findViewById(R.id.titletext);
          description = itemView.findViewById(R.id.description);
          ingredients = itemView.findViewById(R.id.ingredients);
          directions = itemView.findViewById(R.id.directions);
      }
  
  
      void setDataHome(DataHome DataHome) {
          String imageto = DataHome.getImage();
          imagetoo.setText(imageto);
          String titleto = DataHome.getTitle();
          titletext.setText(titleto);
          String descriptionto = DataHome.getDescription();
          description.setText(descriptionto);
          String ingredientsto = DataHome.getIngredients();
          ingredients.setText(ingredientsto);
          String directionsto = DataHome.getDirections();
          directions.setText(directionsto);
      }
  }
  </code></pre>
  
  <p>}</p>