2012-04-03 104 views
8

我想要使用activity as dialog並且我將該活動的主題設置爲對話框&我成功了。 但 我這裏的問題是,當我點擊活動 開始其自動關閉後得到&以前的活動之外..作爲android中的對話框活動

我嘗試過的事情,使透明父佈局它看起來並不像一個對話框。 。

我想利用這個活動中我的應用程序中創建新帳戶,因爲它只有3場這樣的平板電腦,它看起來空間大未使用的,所以,我想用活性對話框.....

然後提前... !!! 例子將不勝感激.. !!!!!

回答

18

具有以下屬性嘗試

this.setFinishOnTouchOutside(false); 
+0

thenx哥哥...... 其工作.... – Wolverine 2012-04-03 05:55:35

+0

這是工作的罰款 – 2015-11-13 08:46:35

2

啓動活動爲對話框我定義

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

現在,當是tartActivity()它顯示像回到對話和家長的活動顯示,i灣一鍵誰我點擊對話框應該關閉和父活動應該顯示,而不刷新頁面。

創建一個我們通常創建的活動。

還要檢查CustomDialogActivity.java on android.com

我覺得你應該創建活動作爲dialog.then它有助於

U可以通過這個設置的風格和主題爲UR活動..

3

如果你還沒有已經嘗試過了,那麼這是實現活性對話框的方式:在您的清單文件 ,添加到您的活動以下屬性:

 <activity 
     android:name=".MyActivityName" 
     android:theme="@android:style/Theme.Dialog" /> 
+0

這是工作.. 活動工作作爲對話框,但當我點擊該對話框之外,它會自動關閉...... – Wolverine 2012-04-03 06:00:05

+0

嘗試添加以下屬性:android:configChanges =「orientation」when I'm在我自己的應用程序中自己嘗試 - 當我在外面碰觸時,它不會關閉dialogActivity – 2012-04-03 06:02:14

7

根據您的需要更改代碼。

由於

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@android:color/transparent" 
     android:orientation="vertical" 
     android:paddingBottom="20sp" > 
     <RelativeLayout 
      android:id="@+id/RlayMain" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="20sp" 
      android:layout_marginRight="30sp" 
      android:layout_marginTop="120sp" 
      android:background="#FFFFFF" 
      android:padding="10sp" > 
      <TextView 
       android:id="@+id/txtsignin" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:text="SIGN IN" 
       android:textColor="#000000" 
       android:textSize="25sp" /> 
      <EditText 
       android:id="@+id/edtUserName" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/txtsignin" 
       android:layout_marginTop="10sp" 
       android:layout_toRightOf="@+id/txtuser" 
       android:hint="USERNAME" /> 
      <EditText 
       android:id="@+id/edtPassword" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/edtUserName" 
       android:layout_marginTop="10sp" 
       android:hint="PASSWORD" 
       android:inputType="textPassword" /> 
      <Button 
       android:id="@+id/btnSignIn" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/edtPassword" 
       android:layout_marginTop="10sp" 
       android:paddingBottom="10sp" 
       android:paddingTop="10sp" 
       android:text="Sign In" > 
      </Button> 
      <Button 
       android:id="@+id/btnSignUp" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/btnSignIn" 
       android:layout_marginTop="10sp" 
       android:paddingBottom="10sp" 
       android:paddingTop="10sp" 
       android:text="Sign Up For Free!" > 
      </Button> 
     </RelativeLayout> 
    </RelativeLayout> 
+1

謝謝你,它看起來不錯。 +1 – pandabear 2012-09-11 15:04:21

2

爲了避免從API點擊窗口外時 關閉所述活動的問題11通過的Vivek提到使用this.setFinishOnTouchOutside(假) ;

但對於之前的API使用此代碼:

​​
0

在移動設備和平板電腦使用相同的活動。

移動: -

  1. 轉到RES - >值。
  2. 打開styles.xml並添加以下主題設置。

styles.xml: -

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

平板電腦: -發射活動爲對話框。

  1. 轉到「res」。
  2. 創建新文件夾「values-sw720dp」。
  3. 創建新的styles.xml並添加以下主題設置。

styles.xml: -

<style name="AppTheme" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="colorPrimary">@color/primary_color</item> 
    <item name="colorPrimaryDark">@color/primary_dark_color</item> 
    <item name="android:textColorPrimary">@color/white</item> 
    <item name="colorAccent">@color/material_green_800</item> 
    <item name="colorButtonNormal">@color/material_green_800</item> 
    <item name="windowFixedHeightMajor">800dp</item> 
    <item name="windowFixedHeightMinor">800dp</item> 
</style> 

的Manifest.xml: -

<activity 
    android:name=".LogInActivity" 
    android:label="@string/title_activity_log_in" 
    android:screenOrientation="portrait" 
    android:theme="@style/AppTheme"   //set the theme activity 
    android:windowSoftInputMode="adjustPan" > 
    </activity>