대화 상자로서의 안드로이드 활동 이름 이 있습니다. 이제이 활동을 다른

whereActity자식 대화 상자 가있는 Activity라는 이름 이 있습니다. 이제이 활동을 다른 활동의 대화 상자로 표시하고 싶습니다.

어떻게해야합니까?

여기에 이미지 설명을 입력하십시오



답변

대화 상자로 활동을 시작하려면 다음과 같이 정의했습니다 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을 디자인하십시오.