Как удалить Dialog (int dialogID) Android? - PullRequest
1 голос
/ 19 января 2012

Я расширил свой класс диалоговым окном, в котором я установил представление содержимого и другие списки действий кнопок и т. Д. ... что происходит, когда я создаю свой диалог, он правильно отображает фон.

, но открытие его снова и снова приводит к возникновению проблем с просмотром контента, вещи добавляются случайно и большинство элементов пользовательского интерфейса повторяются, а фоновое изображение исчезает.

Я знаю, что диалоговое окно создается один раз и используется в качестве кэша, я не хочу, чтобы я знал, что в Android есть метод removeDialog (int dialogID), но я не знаю, кто его использует, я не знаю не дать никакого идентификатора моему диалогу, я не знаю, как дать идентификатор диалогу.

#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();

1 Ответ

4 голосов
/ 19 января 2012

Класс Dialog работает со своим собственным набором идентификаторов.Если вы создаете диалог с помощью createDialog (int x), вы можете передать этот x в качестве собственного идентификатора.Удаление диалогового окна имеет ту же структуру: removeDialog (int x), где x, опять же, идентификатор вашего типа диалогаЭто делается таким образом, чтобы можно было различать различные «типы» диалогов, определенных вами, без необходимости расширять класс диалога.так как вы можете иметь только один диалог на действие, это удалит только этот диалог и каждую (!) ссылку на него.Прочитайте http://developer.android.com/guide/topics/ui/dialogs.html, чтобы полностью понять, что здесь происходит.

...