0

工作自定义对话框我有一点奇怪的情况 - 我有一个中时,从点击活动按钮时打开一个自定义对话框。自定义对话框包含一个关闭按钮,单击时关闭对话框并将用户返回到活动。当我按照原样运行代码(如下所示)时,不是启动自定义对话框,而是进入主要活动(我认为要么重新打开应用程序,要么以某种方式为主要活动创建虚构的意图)。但是,当我删除/注释关闭按钮的代码 - 突出显示为// ===此代码时,一切正常(自定义对话框打开),但关闭按钮不起作用。我不知道我错过了什么。不能与“setOnClickListener”的Android工作室

// Global variable 
    Button openDialog; 

    // ====== 
    openDialog = (Button) findViewById(R.id.opendialog); 
    openDialog.setOnClickListener(new Button.OnClickListener() { 
     public void onClick(View v) { 

      final Dialog cusomDialog = new Dialog(sellActivity.this); 
      cusomDialog.setContentView(R.layout.customdialog); 


      // === This code 
      final Button close = (Button) findViewById(R.id.close); 
      close.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         cusomDialog.dismiss(); 

        } 
       }); 
      // === This code 

      cusomDialog.show(); 


     } 
    }); 

有人请澄清一下,因为我真的很困惑。

+0

为什么downvote,我做错了什么? – SumOne

+0

检查答案 – W4R10CK

+0

你也可以点击此链接https://www.mkyong.com/android/android-custom-dialog-example/ –

回答

2

初始化您的Dialog查看里面Dialog

替换此:

final Button close = (Button) findViewById(R.id.close); 

有了这个:

final Button close = (Button) cusomDialog.findViewById(R.id.close); 
3

起初,你应该通过cusomDialog视图对象。

其次,对话框创建和调用的方法是错误的。

final Button close = (Button)cusomDialog.findViewById(R.id.close); 
     close.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        cusomDialog.dismiss(); 

       } 
      }); 

同样的问题

openDialog = (Button)cusomDialog.findViewById(R.id.opendialog); //Rectified 

你应该更多的信息,请阅读Custom Dialog

0

我想你应该膨胀的布局和获取视图和设置在自定义对话框中查看。

final Dialog cusomDialog = new Dialog(sellActivity.this); 
View view = LayoutInflater.fromContext(sellActivity.this).inflate(R.layout.customdialog,false); 
cusomDialog.setContentView(view); 
Button close = (Button) view.findViewById(R.id.close); 

祝您好运!