我需要哪种背景?

时间:2012-03-19 19:31:25

标签: java android

我正在创建一个对话框并使用(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;

3 个答案:

答案 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中加载新对话框。通过这种方式,您可以创建更多可重用的对话框,并避免现在的范围问题。