Как передать значение из одного адаптера в другое действие - PullRequest
0 голосов
/ 28 июня 2018

ItemPriceAdapter class

Из этого класса адаптера я хочу передать значение с помощью намерения другому действию. Я не могу найти проблему в своем коде, поэтому, пожалуйста, помогите мне разобраться, как отправить значение из этого класса адаптера в другое действие. Ниже мой код:

 holder.like.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (holder.like.isChecked()){

                int likecount = 0;
                likecount++;
                Intent intent = new Intent(mcontext, ItemDetailActivity.class);
                intent.putExtra("Likes", likecount+"");
            }
        }
    });

}

Когда я нажимаю на значок лайка, я хочу увеличить количество лайков и отправлять их в другое действие, чтобы показать, сколько лайков дается за элемент.

ItemDetailActivity class

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_item_detail);

    databaseHelper = new DatabaseHelper(this);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    String like = getIntent().getStringExtra("Likes");
    Toast.makeText(this, like+"", Toast.LENGTH_SHORT).show();
}
    });

Я получаю нулевое значение в моем сообщении о тостах.

Ответы [ 4 ]

0 голосов
/ 28 июня 2018

Вам нужно передать context в адаптер, чтобы запустить Intent

if (holder.like.isChecked()){

            int likecount = 0;
            likecount++;
            Intent intent = new Intent(mcontext, ItemDetailActivity.class);
            intent.putExtra("Likes", likecount+"");
            mContext.startActivity(intent);
        }
0 голосов
/ 28 июня 2018

Вы пропустили startActivity(intent) попробуйте это

 if (holder.like.isChecked()){

            int likecount = 0;
            likecount++;
            Intent intent = new Intent(mcontext, ItemDetailActivity.class);
            intent.putExtra("Likes", likecount+"");
            context.statrActivity(intent);
        }
0 голосов
/ 28 июня 2018

Пожалуйста, исправьте ваш код следующим образом

            Intent intent = new Intent(mcontext, ItemDetailActivity.class);
            intent.putExtra("Likes", likecount+"");
            mcontext.startActivity(intent);

Затем в onCreate () сделайте это

String like = getIntent().getExtras().getString("Likes");
0 голосов
/ 28 июня 2018

Вы создали намерение, но не запускаете его.

Убедитесь, что вы вызываете startActivity с тем намерением, которое вы создали ранее.

...