如何在适配器中启动活动?

2022-08-31 13:13:14

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

那么解决这个问题的最佳方法是什么呢?

谢谢。


答案 1

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

答案 2

实现 时,可以使用 。onClickListenerv.getContext.startActivity

btn.setOnClickListener(new OnClickListener() {                  
    @Override
    public void onClick(View v) {
        v.getContext().startActivity(PUT_YOUR_INTENT_HERE);
    }
});

推荐