关闭对话框时单击时更改可绘制图像视图



我有一个自定义列表视图,它使用ImageView显示图像。当我单击图像时,我显示对话框。我想在单击图像 ImageView 时但在关闭对话框后更改图像视图的图像。

        @Override
        public void onClick(View v) {
            ImageView imageview = (ImageView) v.findViewById(R.id.imageview);
            int position;
            switch (v.getId()) {
                case R.id.imageview:
                    position=(Integer)v.getTag();
                        imageview.setImageResource(R.drawable.image2);
                    break;
                }
        }
        @Override
        protected Dialog onCreateDialog(int id) {
            switch (id) {
                case dialog:
                    pDialog = new ProgressDialog(this);
                    pDialog.setTitle("Hello");
                    pDialog.setCancelable(true);
                    pDialog.show();
                    return pDialog;
                default:
                    return null;
            }
        }
pDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
    @Override
    public void onDismiss(DialogInterface dialogInterface) {
        ImageView imageview = (ImageView)v.findViewById(R.id.imageview);
        imageview.setImageResource(R.drawable.image2); 
adapter.notify();
    }
});

更改映像后应通知适配器

我没有太多关于你的代码的信息,但通常你可以使用这样的东西

class Adapter extends RecyclerView.Adapter<MyViewHolder> {
    List<MyDataModel> items = new ArrayList<>();
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return new MyViewHolder(view);
    }
    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        holder.setUp(items.get(position));
    }
    @Override
    public int getItemCount() {
        return items.size();
    }
}
class MyViewHolder extends RecyclerView.ViewHolder {
    ImageView someImageView;
    public MyViewHolder(View itemView) {
        super(itemView);
    }
    public void setUp(MyDataModel data) {
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Initialize your dialog properties
                ProgressDialog dialog;
                dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
                    @Override
                    public void onDismiss(DialogInterface dialogInterface) {
                        data.isDismissed = true;
                        yourRecyclerViewAdapterInstance.notifyItemChanged(getAdapterPosition());
                    }
                });
            }
        });
        if (data.isDismissed) {
            someImageView.setImageResource(data.afterDismissImage);
        } else someImageView.setImageResource(data.normalImage);
    }
}
class MyDataModel {
    int normalImage;
    int afterDismissImage;
    boolean isDismissed = false;
}

最新更新