0
public class ScrollingActivitySalads extends AppCompatActivity {
...
public class RVAdapterSalads extends RecyclerView.Adapter<RVAdapterSalads.CardViewHolder> {

    public class CardViewHolder extends RecyclerView.ViewHolder {
        TextView dishName = (TextView) itemView.findViewById(R.id.dish_name);
        TextView  dishConsist = (TextView) itemView.findViewById(R.id.dish_consist);
        ImageView dishPhoto = (ImageView) itemView.findViewById(R.id.dish_photo);
        int currentCardPosition;
        Context mContext;
        String allDishes = "";
        CardView cardView = (CardView) itemView.findViewById(R.id.cv);

        CardViewHolder(View itemView, Context context) {
            super(itemView);
            mContext = context;
            cardView.setOnClickListener(new View.OnClickListener() {
                @Override public void onClick(View v) {
                    if(mContext instanceof ScrollingActivitySalads){
                        ((ScrollingActivityHots)mContext).showSnackbar(currentCardPosition+1);
                        allDishes += "dishName";
                        allDishes += "/n";
                    }
                }
            });
            intent.putExtra("allSalads", allDishes);//error
        }

    }....

В отмеченном месте выдается ошибка NullPointerException. Заметил, что задний фон переменных allDishes, если на нее щелкнуть, у всех красный, а у переменной в отмеченной строке зеленый. Возможно, внутри putExtra воспринимается другая переменная? Как исправить?

1 Answers1

1

Переменные сложных типов, классы, например String, или Intent, для которых мы не попросили памяти при помощи слов new Intent();, либо new (класс, который является наследником Intent);, по умолчанию указывают на null, это особый тип данных, поэтому и выскакивает NullPointerException. Напишите Intent intent = new Intent(); и сможете без проблем вызывать методы этого класса.