0

firebase 실시간 데이터베이스를 사용하여 cardview로 recyclerview를 구현했습니다. 다른 활동에 데이터를 전달할 때 문제가 발생합니다. 사용자가 cardview를 클릭 한 후 데이터가 전달되어야합니다. "DetailActivity"라는 다른 활동 cardview에서 다음 DetailActivity이firebase 어댑터를 사용하여 cardview를 사용하여 recyclerview에서 데이터를 다른 활동으로 전달하는 방법

여기

는 중포 기지 어댑터

다음
FirebaseRecyclerAdapter<Food,FoodViewHolder> adapter = new FirebaseRecyclerAdapter<Food, FoodViewHolder>(
      Food.class, 
      R.layout.food_item, 
      FoodViewHolder.class, 

      //referencing the node where we want the database to store the data from our Object 
      mDatabaseReference.child("users").child(userId).child("food").getRef() 
    ) { 


     @Override 
     protected void populateViewHolder(FoodViewHolder viewHolder, final Food model, int position) { 
      if(tvNoMovies.getVisibility()== View.VISIBLE){ 
       tvNoMovies.setVisibility(View.GONE); 
      } 
      viewHolder.tvFoodName.setText(model.getFoodName()); 
      viewHolder.ratingBar.setRating(model.getFoodRating()); 
      viewHolder.tvFoodCategory.setText(model.getFoodCategory()); 
      viewHolder.tvFoodAvailableUpto.setText(model.getFoodAvailableUpto()); 
      viewHolder.tvFoodPrice.setText(model.getFoodPrice()); 
      Picasso.with(getActivity().getApplicationContext()).load(model.getFoodPoster()).into(viewHolder.ivFoodPoster); 

     } 
    }; 
    mRecyclerView.setAdapter(adapter); 

열 수 있습니다해야 할 것은 내 viewholder.class입니다

public static class FoodViewHolder extends RecyclerView.ViewHolder{ 

    TextView tvFoodName; 
    RatingBar ratingBar; 
    ImageView ivFoodPoster; 
    TextView tvFoodCategory; 
    TextView tvFoodAvailableUpto; 
    TextView tvFoodPrice; 

    public FoodViewHolder(View v) { 
     super(v); 
     tvFoodName = (TextView) v.findViewById(R.id.tvName); 
     ratingBar = (RatingBar) v.findViewById(R.id.rating_bar); 
     ivFoodPoster = (ImageView) v.findViewById(R.id.imgThumb); 
     tvFoodCategory = (TextView) v.findViewById(R.id.tvCategory); 
     tvFoodAvailableUpto= (TextView) v.findViewById(R.id.tvavailable); 
     tvFoodPrice = (TextView) v.findViewById(R.id.tvprice); 
    } 

} 

FirebaseRecyclerAdapter<Food,FoodViewHolder> adapter = new FirebaseRecyclerAdapter<Food, FoodViewHolder>(
       Food.class, 
       R.layout.food_item, 
       FoodViewHolder.class, 

       //referencing the node where we want the database to store the data from our Object 
       mDatabaseReference.child("users").child(userId).child("food").getRef() 
     ) { 


      @Override 
      protected void populateViewHolder(FoodViewHolder viewHolder, final Food model, int position) { 
       if(tvNoMovies.getVisibility()== View.VISIBLE){ 
        tvNoMovies.setVisibility(View.GONE); 
       } 
       viewHolder.tvFoodName.setText(model.getFoodName()); 
        viewHolder.tvFoodName.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(getApplicationContext(),Activity2.class);//replace activity2 with ur intended activity 
intent.putExtra();//put whatever data you need to send 
       startActivity(intent) 
      } 
     }); 
       viewHolder.ratingBar.setRating(model.getFoodRating()); 
       viewHolder.tvFoodCategory.setText(model.getFoodCategory()); 
       viewHolder.tvFoodAvailableUpto.setText(model.getFoodAvailableUpto()); 
       viewHolder.tvFoodPrice.setText(model.getFoodPrice()); 
       Picasso.with(getActivity().getApplicationContext()).load(model.getFoodPoster()).into(viewHolder.ivFoodPoster); 

      } 
     }; 
     mRecyclerView.setAdapter 

(어댑터) :

여기 내 Food.class

public class Food { 
public String foodName; 
public String foodPoster; 
public float foodRating; 
public String foodCategory; 
public String foodAvailableUpto; 
public String foodPrice; 

public Food(){ 

} 
public Food(String foodName,String foodPoster,float foodRating, String foodCategory , String foodAvailableUpto , String foodPrice){ 
    this.foodName = foodName; 
    this.foodPoster = foodPoster; 
    this.foodRating = foodRating; 
    this.foodCategory = foodCategory; 
    this.foodAvailableUpto = foodAvailableUpto; 
    this.foodPrice = foodPrice; 
} 
이제

Here is the screenshot of recycleview with cardview

답변

0

그는 (예를 들어) 음식 이름을 클릭 할 때 당신은 다른 활동을 사용자에게 보낼 수있다 ;

+0

이 감사하지만 내 문제를 해결 didnt는, actualy 사용자는 detailactivity로 리디렉션하고 또한 내가 u는 모델 객체를 보낼 수 있습니다 사용자가 다른 cardview을 클릭하면, 그것은 다른 값으로 – samiullah

+0

를 다시로드해야 detailActivity에 모든 cardview 값을 전달해야 이렇게 : intent.putExtra ("model", model); –

관련 문제