在对话框中设置单击侦听器按钮时应用程序崩溃



构建对话框 我想添加一个侦听器,但应用程序崩溃了。怎么了?

private void Info(){
        textview = (TextView) findViewById(R.id.textView1);
        LayoutInflater li = LayoutInflater.from(this);
        View view = li.inflate(R.layout.info, null);
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setView(view).create().show();
        buttonInfo = (Button)findViewById(R.id.buttonInfo);
        buttonInfo.setOnClickListener(new View.OnClickListener() {
              public void onClick(View view) { 
              }
            });

替换

 buttonInfo = (Button) view.findViewById(R.id.buttonInfo);

buttonInfo = (Button) findViewById(R.id.buttonInfo);

最终代码

private void Info(){
        textview = (TextView) findViewById(R.id.textView1);
        LayoutInflater li = LayoutInflater.from(this);
        View view = li.inflate(R.layout.info, null);
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setView(view).create().show();
        buttonInfo = (Button) view.findViewById(R.id.buttonInfo);
        buttonInfo.setOnClickListener(new View.OnClickListener() {
              public void onClick(View view) { 
              }
            });

我猜按钮在对话框的布局内。

如果是这种情况,请尝试替换

buttonInfo = (Button)findViewById(R.id.buttonInfo);

buttonInfo = (Button) view.findViewById(R.id.buttonInfo);

如果要在以下时间将其关闭,则需要存储创建的AlertDialog(而不是生成器):

    final AlertDialog dialog = new AlertDialog.Builder(this).setView(view).show();
    buttonInfo = (Button) findViewById(R.id.buttonInfo);
    buttonInfo.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            dialog.dismiss();
        }
    });

最新更新