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

Android 如何将值从一个适配器传递到另一个活动,android,android-intent,android-adapter,Android,Android Intent,Android Adapter,ItemPriceAdapter类 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_item_detail); databaseHelper = new DatabaseHelper(this); getSupportActionBar().set

ItemPriceAdapter类

@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();
}
    });
从这个适配器类中,我想使用intent将值传递给另一个活动。我在代码中找不到问题,因此请帮助我确定如何将一些值从此适配器类发送到另一个活动。下面是我的代码:

 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+"");
            }
        }
    });

}
当我点击这个like图标时,我想增加like的数量,并将这些like发送到另一个活动,以显示该项目的like数量

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

我的toast Message中得到空值

您已经创建了一个意图,但是您没有启动它


确保调用startActivity时带有您先前创建的意图。

您缺少的
startActivity(意图)
请尝试此操作

 if (holder.like.isChecked()){

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

请像这样更正代码

            Intent intent = new Intent(mcontext, ItemDetailActivity.class);
            intent.putExtra("Likes", likecount+"");
            mcontext.startActivity(intent);
然后在onCreate()中执行此操作


您需要在适配器中传递
上下文
,以启动
意图

if (holder.like.isChecked()){

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

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


因此,由于您不想在like按钮
onClick(View v)
的偶数中
startActivity(intent)
,因此您必须将整体like存储在SharedReference或数据库中,然后在首选活动中将其返回
onCreate(Bundle savedInstanceState)
。我推荐SharedReference。

考虑到他在适配器中,他可能需要使用上下文@ZUNJAE我不想点击那个图标就开始那个活动。我想使用intent将值传递给该活动。使用startActivity(intent)可以解决这个问题吗?当我使用mcontext.startActivity(intent)时,它会无误地传递值,但我不想调用该活动。是否还有其他选项>
Bundle=getIntent().getExtras()在获取值之后
String like=bundle.getString(“Likes”,“Likes”)@HardikVasani不工作。我已经试过了,但也试过一次和你一样的。不!你还有其他想法吗?我还尝试使用使字符串值为静态,并尝试像MainActivity mna=newmainActivity()那样进行解析;和mna.methodname();这在我的情况下也是失败的。请帮帮我!!您可以使用此库轻松实现我不想在单击该图标时打开活动;我所要做的就是将值从适配器类传递到另一个活动。我认为你的纠正不会有帮助。正如我所知,当我使用startActivity(意图)时,它将打开另一个活动。我不想这样做,我想将likes计数值传递给该活动。请重新评论我,如果你有一些解决我的问题的办法。当然,我会这样做使用接口或广播接收器