如何在适配器中启动活动?
2022-08-31 13:13:14
我有一个ListActivity与我的自定义适配器,在每个视图内部,它可能有一些按钮,我需要在其中实现。我需要在适配器中实现 。但是,我不知道如何调用像 或 .由于适配器不会扩展到活动。OnClickListener
OnClickListener
startActivity()
setResult()
那么解决这个问题的最佳方法是什么呢?
谢谢。
我有一个ListActivity与我的自定义适配器,在每个视图内部,它可能有一些按钮,我需要在其中实现。我需要在适配器中实现 。但是,我不知道如何调用像 或 .由于适配器不会扩展到活动。OnClickListener
OnClickListener
startActivity()
setResult()
那么解决这个问题的最佳方法是什么呢?
谢谢。
只需将当前上下文传递给适配器构造函数并将其存储为字段即可。然后在 onClick 中,您可以使用该上下文调用 startActivity()。
伪代码
public class MyAdapter extends Adapter {
private Context context;
public MyAdapter(Context context) {
this.context = context;
}
public View getView(...){
View v;
v.setOnClickListener(new OnClickListener() {
void onClick() {
context.startActivity(...);
}
});
}
}
实现 时,可以使用 。onClickListener
v.getContext.startActivity
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.getContext().startActivity(PUT_YOUR_INTENT_HERE);
}
});