请问在MainActivity的adapter中如何调用MainActivity的函数
时间: 2023-05-29 07:02:14 浏览: 76
在 adapter 中可以通过构造函数传入 MainActivity 的实例,然后就可以在 adapter 中调用 MainActivity 的函数了。
例如,在 MainActivity 中定义一个名为 `test()` 的函数:
```java
public class MainActivity extends AppCompatActivity {
// ...
public void test() {
Log.d("MainActivity", "test function called from adapter");
}
// ...
}
```
在 adapter 中需要传入 MainActivity 实例的构造函数中,保存 MainActivity 实例的引用:
```java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private MainActivity mActivity;
public MyAdapter(MainActivity activity) {
mActivity = activity;
}
// ...
}
```
在 adapter 中就可以通过 `mActivity` 引用来调用 MainActivity 的函数了:
```java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private MainActivity mActivity;
public MyAdapter(MainActivity activity) {
mActivity = activity;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
// call MainActivity function
mActivity.test();
}
// ...
}
```