[android] 대화 상자로서의 안드로이드 활동
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을 디자인하십시오.