想要实现点击ListView的Item中的某个按钮的时候,弹出一个Dialog,但是一直报错
public void removeDialog(String title,String msg)
{
AlertDialog.Builder builder=new AlertDialog.Builder(this);
// builder.setIcon(R.drawable.down);
builder.setTitle("自定义布局");
builder.setMessage(msg);
builder.setNegativeButton("取消",null);
builder.setPositiveButton("确定", new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
Button是在listview自己写的Adapter中实现点击的,如下
holder.present_remove.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
cma=new ConferenceManagementActivity();//removeDialog()放在这个activity中,注册一下这个activity;
cma.removeDialog();
}
});
AlertDialog.Builder(arg0) 的参数是 Context 类型的,这的 this ,写在 Button.OnClickListener 里,其实是指的 Button.OnClickListener, 而并不是Context .
将this写成当前activity.this。AlterDialog.Builder(this)中的this并没有表示当前的activity,所以可以的一个做法是定义一个Activity的变量mActivity,在onCreate方法中让其等于this,然后调用mActivity.
所以我的解决办法是将AlertDialog.Builder(this)中的this改为ConferenceManagementActivity.this