2012-04-03 157 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>