android - 使用 RecyclerView 的自定义警报对话框

标签 android android-alertdialog android-recyclerview

我正在使用 RecyclerView 列出一些文本,现在我想这样做,以便当用户单击文本时弹出自定义警报对话框。

到目前为止我已经试过了但是得到了一个 NullPointerException;这里可能有什么问题?

public class CBAdapter extends RecyclerView.Adapter<CBAdapter.ViewHolder> {

List<AdapterData> mItems;

public CBAdapter() {
    super();
    mItems = new ArrayList<>();
    AdapterData data = new AdapterData();
    data.setTextOne("Many Bows");
    mItems.add(data);

    data = new AdapterData();
    data.setTextOne("Pardon");
    mItems.add(data);

    data = new AdapterData();
    data.setTextOne("Fall To Knees & Beg");
    mItems.add(data);

    data = new AdapterData();
    data.setTextOne("Backflips");
    mItems.add(data);



}

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.test3, viewGroup, false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
    AdapterData data = mItems.get(i);
    viewHolder.textOne.setText(data.getTextOne());

}


@Override
public int getItemCount() {

    return mItems.size();
}

class ViewHolder extends RecyclerView.ViewHolder{

    public TextView textOne;
    private Context context;





    public ViewHolder(View itemView) {
        super(itemView);
        textOne = (TextView)itemView.findViewById(R.id.textView1);

        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                final Dialog dialog = new Dialog(context);
                dialog.setContentView(R.layout.custom_dialog);
                dialog.setTitle("Title");

                TextView text = (TextView) dialog.findViewById(R.id.text);
                text.setText("hello world");

                ImageView image = (ImageView) dialog.findViewById(R.id.image);
                image.setImageResource(R.drawable.ic_launcher);

                Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);

                dialogButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });

                dialog.show();
            }
        });


    }
}
}

最佳答案

没关系我忘了初始化我的上下文

context = itemView.getContext();

关于android - 使用 RecyclerView 的自定义警报对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33560276/

相关文章:

Android Activity 扩展 AlertDialog

android - 无法为 Recycler View 项目添加阴影和边框

android - 如何在设备重启后立即将调试器附加到服务或应用程序?

android - 我的 Action_DOWN 和我的 Scrollview 之间的冲突

java - 实现相同接口(interface)的 DTO 和实体

java - 在android中创建alertbox时出错

android - Google Play 的目标 API 级别要求的问题

java - 无法使用首选项编辑器在单独的类中创建 AlertDialog

android - 有行和列的 Recyclerview?

android - 具有动态高度的项目的水平 RecyclerView