Я хочу вызвать два ContentViews из одного действия - PullRequest
0 голосов
/ 21 сентября 2019

Я делаю приложение для онлайн-покупок, и когда администратор загружает продукты в базу данных, пользователи могут видеть продукты на домашней странице в RecyclerView.Продукты подразделяются на «исчисляемые» и «неисчисляемые».И категория сохраняется в базе данных с информацией о продукте, например:

Firebase screenshot showing an object details

Я хочу, когда пользователь нажимает на продукт в домеСтраница, чтобы открыть определенную активность в соответствии с типом категории (исчисляемая или неисчисляемая).

Я попробовал это на домашней странице: -

FirebaseRecyclerAdapter<Products, ProductViewHolder> adapter =
            new FirebaseRecyclerAdapter<Products, ProductViewHolder>(options) {
                @Override
                protected void onBindViewHolder(@NonNull ProductViewHolder holder, int position, @NonNull final Products model)
                {
                    holder.txtProductName.setText(model.getPname());
                    holder.txtProductPrice.setText("Rs. " + model.getPrice());
                    Picasso.get().load(model.getImage()).into(holder.imageView);
                    holder.itemView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v)
                        {

                            if(model.getCategory() == "countable"){
                                Intent intent = new Intent(HomeActivity.this, ProductDetailsActivity.class);
                                intent.putExtra("pid" , model.getPid());
                                startActivity(intent);
                            }else{
                                Intent intent = new Intent(HomeActivity.this, ProductDetails2Activity.class);
                                intent.putExtra("pid" , model.getPid());
                                startActivity(intent);
                            }

                        }
                    });
                }

                @NonNull
                @Override
                public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
                {
                    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.product_items_layout, parent, false);
                    ProductViewHolder holder = new ProductViewHolder(view);
                    return holder;
                }
            };

Но это не работает ... Можеткто-нибудь, помогите мне, пожалуйста?Я очень ценю вашу помощь!

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

вместо == используйте equals, contains или equalsIgnoreCase.

 if(model.getCategory().equals("countable")){

}
0 голосов
/ 21 сентября 2019

Используйте метод String#equals вместо ==

В java == проверяет, имеют ли два объекта одинаковую ссылку, другими словами, == проверяет, совпадает ли model.getCategoryобъект в памяти как ваша строка "countable", следовательно, ваше условие if всегда будет иметь значение false.

Принимая во внимание, что equals проверяет, имеют ли они оба одинаковое значение.

В качестве примечанияНа скриншоте Firebase я заметил, что вы используете отметки времени в качестве ... идентификаторов записи?это может вызвать проблемы, лучше использовать java.util.UUID.randomUUID()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...