gpt4 book ai didi

java - 我如何在 RecyclerView.Adapter 类中创建警报对话框生成器

转载 作者:搜寻专家 更新时间:2023-11-01 09:19:59 24 4
gpt4 key购买 nike

我的 RecylerView.Adapater 类中的 HoAlertDialogBu​​ilder 我收到一条错误消息“在 Builder 中无法访问 com.example.john.atsnotify.Adapter.PupilGroupAdapter 类”

我可以在扩展 AppCompatActivity 但不在 Adapter 类中的常规 Activity 类中轻松创建警报对话框生成器。为什么?

https://pastebin.com/WqXCG1Ch AlertDialog.Builder builder = new AlertDialog.Builder(PupilGroupAdapter.this);

最佳答案

构造函数的参数(您当前为其传递 PupilGroupAdapter.this)必须是 Context 类型。您的适配器不是上下文,因此失败。

您可以通过 getContext() 方法从任何 View 实例中检索上下文。在您的情况下,您试图通过单击按钮显示警报对话框,因此您可以使用传递给单击监听器的 View 的上下文:

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
// ...

viewHolder.btnAdd.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
showAlertDialog(view.getContext()); // pass the context here
}
} );
}

private void showAlertDialog(Context context) { // receive the context here
AlertDialog.Builder builder = new AlertDialog.Builder(context); // use the context here
}

关于java - 我如何在 RecyclerView.Adapter 类中创建警报对话框生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56958199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com