对话框上的Android应用程序崩溃按钮单击

问题描述:

当按钮被按下时,我试图使对话框关闭。但每当我按下按钮时,应用程序崩溃。对话框上的Android应用程序崩溃按钮单击

public class CanvasPaint extends Activity implements OnClickListener { 
    final Button widthbtn = (Button) findViewById(R.id.widthbtn); 
    final Button widthpopBtn = (Button) findViewById(R.id.widthpopBtn); 

    final Context context = this; 

    final Dialog widthDialog = new Dialog(context); 

    widthbtn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

       widthpopBtn.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         widthDialog.dismiss(); 
        } 
       }); 
       widthDialog.show(); 
     } 
    }); 
} 
+2

请检查您的logcat的,看看你的堆栈跟踪:https://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-解决 - 这 – CommonsWare 2014-10-26 22:04:11

+0

一个upvote?真? – Simon 2014-10-26 23:00:56

+0

@jyoon第二个onclick用于对话框中的按钮 – user2552211 2014-10-26 23:04:39

这是一些初始代码。为什么在点击监听器中设置点击监听器?它应该更像

widthbtn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
      widthDialog.show(); 
    } 
}); 

widthpopBtn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
      widthDialog.dismiss(); 
    } 
}); 
+0

当我这样做的应用程序崩溃庞加载 – user2552211 2014-10-26 22:24:41

+0

然后无论是widthbtn或widthpopBtn为空。正如@CommonsWare已经在上面陈述的那样,检查你的logcat /堆栈跟踪。另外,如果您发布的代码是项目中的实际代码,则您显示的对话框将不会显示为空。 – prettyvoid 2014-10-26 22:28:57

你的对话框布局适当充气,因此,您widthpopBtn将是无效的。尝试膨胀的布局是这样的:

LayoutInflater inflater = getLayoutInflater(); 
View dialogView = inflater.inflate(R.layout.your_dialog_layout, null); 
Button widthpopBtn = (Button) dialogView.findViewById(R.id.widthpopBtn);