在适配器中下面的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等方法,可以根据数据类型以此类推。