Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除Android上的Dialog(int dialogID)?_Android_Background_Dialog - Fatal编程技术网

如何删除Android上的Dialog(int dialogID)?

如何删除Android上的Dialog(int dialogID)?,android,background,dialog,Android,Background,Dialog,我用一个对话框扩展了我的类,在这个对话框中我设置了内容视图和其他按钮actionlisteners等等。。。当我创建对话框时,它会正确地显示背景 但是,一次又一次地打开它会给内容视图带来问题,内容被随意添加,大多数UI元素被重复,背景图像消失 我知道对话框只创建一次,并用作缓存,我不想知道Android Activity removeDialog(int dialogID)中有一个方法,但我不知道该由谁使用,我不给我的对话框提供任何id,我不知道如何给对话框提供id #dialog code

我用一个对话框扩展了我的类,在这个对话框中我设置了内容视图和其他按钮actionlisteners等等。。。当我创建对话框时,它会正确地显示背景

但是,一次又一次地打开它会给内容视图带来问题,内容被随意添加,大多数UI元素被重复,背景图像消失

我知道对话框只创建一次,并用作缓存,我不想知道Android Activity removeDialog(int dialogID)中有一个方法,但我不知道该由谁使用,我不给我的对话框提供任何id,我不知道如何给对话框提供id

#dialog code

public class OptionsDailog extends Dialog implements OnClickListener {
        public OptionsDailog(Activity pContext) {
        super(pContext, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
        mContext = pContext;
        setContentView(R.layout.option_menu);
        setBasicContents();
    }

#options_menu.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" android:id="@+id/rl_root_option_menu">
    <RelativeLayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:background="@drawable/bg_episode" android:id="@+id/rl_option_screen">
        <LinearLayout android:id="@+id/ll_options" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true">
            <Button android:text="Achievements" android:textSize="18sp" android:id="@+id/btn_achievements" android:background="@drawable/bg_options_menu" android:textColor="#FFFFFF" android:layout_width="250dp" android:layout_height="60dp"></Button>
            <Button android:text="Tutorial" android:textSize="18sp" android:id="@+id/btn_tutorial" android:background="@drawable/bg_options_menu" android:textColor="#FFFFFF" android:layout_width="250dp" android:layout_height="60dp"></Button>
            <Button android:text="Leaderboard" android:textSize="18sp" android:id="@+id/btn_leaderboard" android:background="@drawable/bg_options_menu" android:textColor="#FFFFFF" android:layout_width="250dp" android:layout_height="60dp"></Button>
            <Button android:id="@+id/btn_music" android:text="Music" android:textSize="18sp" android:background="@drawable/bg_options_menu" android:textColor="#FFFFFF" android:layout_width="250dp" android:layout_height="60dp"></Button>
            <Button android:id="@+id/btn_sound" android:textSize="18sp" android:text="Sound" android:layout_marginBottom="10dip" android:background="@drawable/bg_options_menu" android:textColor="#FFFFFF" android:layout_width="250dp" android:layout_height="60dp"></Button>
        </LinearLayout>
    </RelativeLayout>
    <ImageButton android:background="@drawable/btn_back" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ib_back_options_menu"></ImageButton>
</RelativeLayout>

#Dialog showing code
final OptionsDailog mDailog = new OptionsDailog(JungleCrashLand.this);
            mDailog.show();
对话框代码 公共类选项Dailog extends对话框实现OnClickListener{ 公共选项Dailog(活动pContext){ 超级(pContext,android.R.style.Theme_半透明_NoTitleBar_全屏); mContext=pContext; setContentView(R.layout.option_菜单); setBasicContents(); } #选项\u menu.xml #显示代码的对话框 最终选项Dailog mDailog=新选项Dailog(JungleCrashLand.this); mDailog.show();
对话框类使用自己的一组标识符。如果使用createDialog(int x)创建对话框,则可以将此x作为自己的标识符传递。删除对话框遵循相同的结构:removeDialog(int x),其中x再次是对话框类型的标识符。这样做是为了能够区分不同类型的对话框对话框的“类型”,由您自己定义,无需扩展dialog类

所以基本上:

static final int OPTIONS_DIALOG = 0;
[...]
createDialog(OPTIONS_DIALOG);
[...]
removeDialog(OPTIONS_DIALOG);

由于每个活动只能有一个对话框,因此这将仅删除此对话框及其所有(!)引用。请阅读以完全了解此处发生的情况。

dialog类使用自己的标识符集工作。如果使用createDialog(int x)创建对话框您可以将此x作为自己的标识符传递。删除对话框遵循相同的结构:removeDialog(int x),其中x同样是对话框类型的标识符。这样做是为了能够区分由您自己定义的不同“类型”的对话框,而无需扩展dialog类

所以基本上:

static final int OPTIONS_DIALOG = 0;
[...]
createDialog(OPTIONS_DIALOG);
[...]
removeDialog(OPTIONS_DIALOG);

由于每个活动只能有一个对话框,因此这将仅删除此对话框及其所有(!)引用。请阅读以完全了解此处发生的情况。

我已覆盖Disclose(),我还想删除此对话框覆盖后您是否执行了super.disclose()(只是一个想法)基本上只执行public void disclose(){super.disclose()…无论你想做什么}是的,我正在调用super,但在disclose上我也想删除这个对话框。我已经覆盖disclose(),我也想删除这个对话框。你是否做了super.disclose()在覆盖(只是一个想法)之后基本上只做public void disclose(){super.disclose()…无论你想做什么}是的,我正在呼叫super,但在解雇时,我也想删除此对话框。