现象:
报错android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
代码:
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Context context = getApplicationContext();
Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("自定义对话框");
TextView textview = (TextView) dialog.findViewById(R.id.text);
textview.setText("Hello this is a custom dialog");
ImageView imageview = (ImageView) dialog.findViewById(R.id.image);
imageview.setImageResource(R.drawable.ic_launcher);
dialog.show();
}
});
分析:
new Dialog(Context),这里虽然是要Conntext类型,但是不能使用getApplicationContext()获得的Context,而必须使用Activity.this获得的Context对象,
因为只有一个Activity才能添加一个窗体
代码:
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("自定义对话框");
TextView textview = (TextView) dialog.findViewById(R.id.text);
textview.setText("Hello this is a custom dialog");
ImageView imageview = (ImageView) dialog.findViewById(R.id.image);
imageview.setImageResource(R.drawable.ic_launcher);
dialog.show();
}
});