如何将值从一个适配器传递到另一个活动

时间:2018-06-28 11:26:58

标签: android android-intent android-adapter

ItemPriceAdapter类

从这个适配器类中,我想使用意图将值传递给另一个活动。我在代码中找不到问题,因此请帮助我确定从此适配器类向其他活动发送一些值。下面是我的代码:

 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类

@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();
}
    });

我的吐司面包中的值不为零。

5 个答案:

答案 0 :(得分:1)

您错过了startActivity(intent),请尝试

 if (holder.like.isChecked()){

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

答案 1 :(得分:0)

您已经创建了一个Intent,但是您并未启动它。

确保您使用先前创建的意图调用startActivity。

答案 2 :(得分:0)

请像这样更正您的代码

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

然后在onCreate()中执行此操作

String like = getIntent().getExtras().getString("Likes");

答案 3 :(得分:0)

您需要在适配器中传递context才能启动Intent

if (holder.like.isChecked()){

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

答案 4 :(得分:0)

这是一个非常老的问题,但我想我有一个可以帮助您的答案。

因此,由于您不想在“赞”按钮startActivity(intent)的偶数中onClick(View v),因此,您必须将整体喜欢存储在sharedPreference或数据库中,然后将其取回{{ 1}}中您喜欢的活动。我建议使用sharedPreference。