Android - 为什么Dialog不会关闭dialog.dismiss()

Gen*_*nik 4 android android-layout

我有点奇怪的问题.当一个活动开始时,我会显示一个对话框,说明某些项目正在加载如下:

Dialog dialog;

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);        
    setContentView(R.layout.topic_edit);

    dialog = new Dialog (this);

    dialog.setContentView(R.layout.please_wait);
    dialog.setTitle("Loading The Comment.");

    TextView text = (TextView) dialog.findViewById(R.id.please_wait_text);
    text.setText("Please wait while the comment loads...");
    dialog.show();
Run Code Online (Sandbox Code Playgroud)

我在类声明之前声明了Dialog对话框,然后每当我尝试用dialog.dismiss();它关闭它时它都不会关闭.

这是please_wait.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<TextView
    android:id="@+id/please_wait_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

有人会知道为什么对话框没有关闭dialog.dismiss()...我在调用返回后尝试在异步调用中解除.但是我做了检查,并且dialog.dismiss()执行了该行,仅仅由于某种原因没有关闭对话框.

这是我尝试解除对话框的方式:

@Override
protected void onPostExecute(String result) 
{
    dialog.dismiss();
} 
Run Code Online (Sandbox Code Playgroud)

Sna*_*ake 14

确保在执行dialog.dismiss时它指向您创建的对话框.您将对话框作为类变量,并且很有可能在解雇时分配另一个对话框.我有这个,结果是在解雇时的对话变量不再指向我的实际对话框.

设置断点并查看创建/执行时的对话变量是否仍然相同可能会有所帮助

  • 蛇第一次拯救了某人的生命,你很幸运;) (9认同)