質問

名前付きのアクティビティがあります whereActity 子の対話もあります。次に、このアクティビティを別のアクティビティの対話として表示したいと思います。

どうやってやるの?

enter image description here

役に立ちましたか?

解決

ダイアログとしてアクティビティを開始するために、私はこのように定義しました AndroidManifest.xml:

<activity android:theme="@android:style/Theme.Dialog" />

あなたの内部のこのプロパティを使用してください activity ダイアログが最近使用されたアプリリストに表示されることを避けるためのタグ

android:excludeFromRecents="true"

ユーザーがダイアログの外側をクリックすると、ダイアログ /アクティビティが破壊されないようにしたい場合:

setContentView() あなたの中で Activity 使用する:

this.setFinishOnTouchOutside(false);

今私が電話するとき startActivity() これはダイアログとして表示され、ユーザーが戻るボタンを押すと以前のアクティビティが表示されます。

使用している場合は注意してください ActionBarActivity (またはAppCompatテーマ)、使用する必要があります @style/Theme.AppCompat.Dialog 代わりは。

他のヒント

このコードを使用して、ユーザーがダイアログボックスの外側に触れたときにダイアログアクティビティが閉じないようにします。

this.setFinishOnTouchOutside(false);

APIレベル11が必要です

このスタイルをValues/Styles.xmlで定義して、より以前のスプラッシュを実行できます。

   <style name="Theme.UserDialog" parent="android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:background">@android:color/transparent</item>
        <item name="android:windowBackground">@drawable/trans</item>
    </style>

androidmanifest.xmlを使用してください:

   <activity android:name=".SplashActivity"
          android:configChanges="orientation"
          android:screenOrientation="sensor"
          android:theme="@style/Theme.UserDialog">

1-ダイアログとフル画面の両方と同じアクティビティを動的に使用できます。

電話 setTheme(android.R.style.Theme_Dialog) 電話する前に setContentView(...)super.oncreate() あなたの活動で。

2-アクティビティテーマスタイルを変更する予定がない場合は、使用できます

<activity android:theme="@android:style/Theme.Dialog" />

(@Faisal Khanが言及したように)

AppCompatバージョンが必要な場合

style.xml

    <!-- Base application theme. -->
    <style name="AppDialogTheme" parent="Theme.AppCompat.Light.Dialog">
        <!-- Customize your theme here. -->
        <item name="windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
    </style>

yourmanifest.xml

    <activity
          android:name=".MyActivity"
          android:label="@string/title"
          android:theme="@style/AppDialogTheme">
    </activity>

アクティビティがダイアログとしてレンダリングされている場合は、アクティビティのXMLにボタンを追加するだけです。

<Button
    android:id="@+id/close_button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Dismiss" />

次に、アクティビティのJavaコードでクリックリスナーを添付します。リスナーでは、電話をかけてください finish()

Button close_button = (Button) findViewById(R.id.close_button);
close_button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        finish();
    }
});

それはあなたの対話を却下し、あなたを呼び出し活動に戻します。

アクティビティヘッダーを削除し、ダイアログのカスタムビューを提供する場合は、マニフェストのアクティビティブロックに以下を追加します

android:theme="@style/Base.Theme.AppCompat.Dialog"

そして、あなたの希望のビューであなたのActivity_layoutを設計します

Androidマニフェストファイルにテーマを設定します。

<activity android:name=".LoginActivity"
            android:theme="@android:style/Theme.Dialog"/>

ダイアログ状態をタッチに設定して完了します。

this.setFinishOnTouchOutside(false);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top