0

アクティビティに対してカスタム ダイアログを作成しようとしていますが、ダイアログを正常に作成できます。

デバイスの戻るボタンや外側のクリックではなく、アクティビティのボタンをクリックしたときにダイアログを非表示にしたいと考えています。問題は-ダイアログが開くと、アクティビティがフォーカスを失うため、ボタンをクリックしないことです(私が思うに)

ダイアログクラスのコンストラクタは次のとおりです-

public CustomDialog(Context context) {

        super(context);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.cus_dialog);
    }

とxml -

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
     android:background="@drawable/normal_border"
    android:orientation="vertical"
    android:padding="20dp" >

    <TextView
        android:id="@+id/delete_msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:text="@string/delete_msg"
         />

    <LinearLayout
        android:id="@+id/work_phone_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/delete_msg"
        android:layout_margin="10dp"
        android:layout_marginTop="10dp"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/delete_yes_label"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:background="@drawable/normal_border"
            android:text="@string/yes"
            android:textAppearance="@style/labels" />

         <View
            android:id="@+id/gap"
            android:layout_width="0dp"
            android:layout_height="3dp"
            android:layout_weight="2"
           />

       <Button
            android:id="@+id/delete_no_label"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:background="@drawable/normal_border"
            android:text="@string/no"
            android:textAppearance="@style/labels" />
    </LinearLayout>

</RelativeLayout>

私は試した -

 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

しかし効果なし。ここで何が起こっているのかわかりません。助けてください

更新- HTC (android 4.0) でテストしましたが、このデバイスでは正常に動作していますが、android 2.3 では動作していません

4

3 に答える 3

0
android 4.0 Dialog gets canceled when touched outside of dialog window

setCanceledOnTouchOutside(boolean cancel) メソッドを使用してみてenable/disable、ダイアログ ウィンドウの外側に触れたときにダイアログの動作にブール値を渡します。

そしてさらにチェックするためにこれ

于 2013-11-08T07:28:15.340 に答える