适配器中intent使用方法(跳转到下一个活动)

在适配器中下面的Intent构造方法不能使用

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);

这是因为,适配器是一个java类,而不是一个活动(Activity),所以在适配器中使用Intent需要传入Context(上下文)。

使用方法如下:

...//省略前面代码
@Override
public void onClick(View v) {

   Intent intent = new Intent(v.getContext(),SecondActivity.class);
   v.getContext().startActivity(intent);

 }

如果在适配器中需要返回数据给上一个活动,即使用startActivityForResult方法。

修改如下:

...//省略前面代码
@Override
public void onClick(View v) {

   Intent intent = new Intent(v.getContext(),SecondActivity.class);
   ((Activity)v.getContext()).startActivityForResult(intent,1);

 }

上面两种方法就可以解决在适配器中使用Intent进入另一个活动,并且第二个方法可以返回数据给前一个活动。

附加:使用Bundle传递多个数据到活动中方法,直接上代码,如下:

//绑定多个数据传入下一个活动
Bundle bundle = new Bundle();

bundle.putInt("image",fruit.getImageId());
bundle.putString("name",fruit.getName());

intent.putExtras(bundle);

v.getContext().startActivity(intent);

其中,putInt,putString等方法,可以根据数据类型以此类推。

参考资料:https://cloud.tencent.com/developer/ask/78101

发布了38 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43851639/article/details/89743423