2012-04-03 12 views
8

Quiero utilizar un activity as dialog y me hizo el tema de la actividad como de diálogo & tengo éxito. pero tengo el problema aquí es cuando hago clic fuera de la actividad su & la actividad anterior se cierran automáticamente empezar ..actividad como diálogo en el androide

he intentado hacer una cosa a la disposición de los padres transparente que no se ve como un cuadro de diálogo.

Quiero usar esta actividad para crear una cuenta nueva en mi aplicación, ya que solo tiene 3 campos, así que en la tableta se ve un gran espacio sin usar ... así que quiero usar la actividad como diálogo .....

thenx por adelantado ... !!! ejemplos serán apreciados .. !!!!!

Respuesta

18

tratar con propiedad siguiente

this.setFinishOnTouchOutside(false); 
+0

thenx hermano ... su trabajo .... – Wolverine

+0

esto está funcionando bien –

2

para iniciar la actividad como de diálogo i definida

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

ahora, cuando es tartActivity() se muestran como en la pantalla la actividad de los padres de diálogo y en la espalda, i pálido un botón para quien Hago clic en el cuadro de diálogo debería descartar y la actividad principal debe mostrar sin actualizar la página.

Crea una actividad como habitualmente la creamos.

también comprobar CustomDialogActivity.java on android.com

creo que u debe crear actividad como dialog.then ayuda

u puede establecer el estilo y el tema de la actividad ur por esta ..

3

si no lo ha bastante bueno en ello, entonces este es el camino para lograr una actividad como diálogo: en el archivo de manifiesto, añadir a su actividad el siguiente atributo:

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

esto está funcionando .. actividad funcionó como diálogo, pero cuando hago clic fuera de ese diálogo, se cierra automáticamente ... – Wolverine

+0

intente agregar el siguiente atributo: android: configChanges = "orientation" cuando estoy probándolo en mi propia aplicación, no está cerrando el cuadro de diálogo. Actividad cuando estoy tocando afuera –

7

Realice cambios en el código según su necesidad.

Gracias

<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

Gracias por esto, se ve genial. +1 – pandabear

2

Para la cuestión de evitar el cierre de la actividad cuando se hace clic ventana exterior de API 11 como se ha mencionado por Vivek utilizar this.setFinishOnTouchOutside (false);

pero para las API anterior utilizan este código:

@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)); 
} 
0

Usando misma actividad en dispositivos móviles y tabletas.

móvil: -

  1. Goto res -> valores.
  2. Abra styles.xml y agregue las siguientes configuraciones de tema.

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> 

comprimido: - actividad de lanzamiento como diálogo.

  1. Ir a "res".
  2. Crea la nueva carpeta "values-sw720dp".
  3. Crea nuevos styles.xml y agrega las siguientes configuraciones de tema.

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