在android中作为对话框的活动

我想使用一个activity as dialog ,我把活动的主题作为对话,我成功了。 但我有问题在这里是当我点击活动以外的其自动获得closures和以前的活动开始..

我试图做一个透明的父母布局它看起来不像一个对话框..

我想用这个活动来创build我的应用程序中的新帐户,因为它只有3个字段,所以在平板电脑看起来很大的空间未使用…所以我想使用活动作为对话…..

然后提前… !!! 例子将不胜感激.. !!!!!

Solutions Collecting From Web of "在android中作为对话框的活动"

尝试以下属性

  this.setFinishOnTouchOutside(false); 

根据需要在代码中进行更改。

谢谢

 <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> 

如果你还没有尝试过,那么这就是以对话forms实现活动的方法:在清单文件中,将以下属性添加到活动中:

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

按照我定义的对话框开始活动

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

现在当tartActivity()它显示像对话框和父活动显示在后面,我想一个button,我点击对话框应该消除,父活动应该显示,而不刷新页面。

创build一个活动,通常我们创build它。

也检查android.com上的CustomDialogActivity.java

我认为你应该创造一个对话的活动,然后帮助

你可以通过这个为你的活动设置风格和主题。

对于Vivek提到的从API 11点击外部窗口时避免closures活动的问题,使用this.setFinishOnTouchOutside(false);

但对于以前的API使用此代码:

 @Override public boolean onTouchEvent(MotionEvent event) { if ( event.getAction() == MotionEvent.ACTION_DOWN && isOutOfBounds(this, event)){ return true; } return super.onTouchEvent(event); } private boolean isOutOfBounds(Activity context, MotionEvent event) { final int x = (int) event.getX(); final int y = (int) event.getY(); final int slop = ViewConfiguration.get(context).getScaledWindowTouchSlop(); final View decorView = context.getWindow().getDecorView(); return (x < -slop) || (y < -slop) || (x > (decorView.getWidth()+slop)) || (y > (decorView.getHeight()+slop)); } 

在移动设备和平板电脑中使用相同的活动。

手机: –

  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. 创build新的文件夹“values-sw720dp”。
  3. 创build新的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>