一尘不染

如何在适配器中启动Activity?

java

我有一个带有自定义适配器的ListActivity,并且在每个视图内部,它可能都有一些按钮需要在其中实现OnClickListener。我需要OnClickListener在适配器中实现。但是,我不知道如何像startActivity()或那样调用函数setResult()。由于适配器不会扩展到活动。

那么解决此问题的最佳方法是什么?

谢谢。


阅读 317

收藏
2020-09-08

共1个答案

一尘不染

只需将当前上下文传递给Adapter构造函数并将其存储为字段即可。然后在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(...);
             }
         });
     }
}
2020-09-08