我正在创建一个对话框并使用(this)无效。到目前为止,它只是一个调用对话框的按钮,但现在被调用对话框中的按钮需要调用另一个对话框。 Dialog dialogdelcon是有问题的。
以下是代码:
case R.id.delappt:
//rmvall();
final Dialog dialogdelsel = new Dialog(this);
dialogdelsel.setContentView(R.layout.delsel);
dialogdelsel.setTitle("What would you like to do?");
dialogdelsel.setCancelable(true);
Button btndelsel = (Button) dialogdelsel.findViewById(R.id.btndelsel);
btndelsel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// delete selected code here.
}
});
Button btndelall = (Button) dialogdelsel.findViewById(R.id.btndelall);
btndelall.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// delete all code here.
final Dialog dialogdelcon = new Dialog();
dialogdelcon.setContentView(R.layout.delcon);
dialogdelcon.setTitle("Deletion Confirmation");
dialogdelcon.setCancelable(true);
Button buttoncnclok = (Button) dialogdelcon.findViewById(R.id.btndelcon);
buttoncnclok.setOnClickListener(new OnClickListener() {
// on click for cancel button
@Override
public void onClick(View v) {
dialogdelcon.dismiss();
}
});
dialogdelcon.show();
}
});
dialogdelsel.show();
break;
答案 0 :(得分:1)
getApplicationContext()
或使用YourActictyName.this
因为this
引用按钮click listner
,而不是您的班级Object
答案 1 :(得分:0)
如果此代码位于onCreate()
方法中,或类似,请添加getApplicationContext()
而不是this
,您应该没问题。那是因为Button-context中的this
将引用按钮环境。
答案 2 :(得分:0)
为了改善两个对话框之间的隔离,最好从onClick处理程序调用showDialog(R.id.delapptcon)。然后在活动的onCreateDialog中加载新对话框。通过这种方式,您可以创建更多可重用的对话框,并避免现在的范围问题。