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
이 감사하지만 내 문제를 해결 didnt는, actualy 사용자는 detailactivity로 리디렉션하고 또한 내가 u는 모델 객체를 보낼 수 있습니다 사용자가 다른 cardview을 클릭하면, 그것은 다른 값으로 – samiullah
를 다시로드해야 detailActivity에 모든 cardview 값을 전달해야 이렇게 : intent.putExtra ("model", model); –