2012-04-03 26 views
8

Voglio usare un activity as dialog e ho reso il tema dell'attività come finestra di dialogo & ho successo. ma ho il problema qui è quando scatto al di fuori delle attività sua automaticamente ottenere chiuso & l'attività precedente iniziare ..attività come finestra di dialogo in Android

ho provato una cosa per rendere trasparente il layout genitore non sembra come una finestra di dialogo. .

voglio usare questa attività per creare nuovo account nella mia applicazione in quanto ha solo 3 campi in modo in compresse sembra grande spazio inutilizzato ... quindi voglio usare attività di dialogo .....

thenx in anticipo ... !!! Gli esempi saranno apprezzati .. !!!!!

risposta

18

provare con le seguenti proprietà

this.setFinishOnTouchOutside(false); 
+0

thenx fratello ... il suo funzionamento .... – Wolverine

+0

questo sta lavorando bene –

2

per avviare attività di dialogo ho definito

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

ora quando è tartActivity() si display simile al dialogo e l'attività genitore sulla schiena, ho wan un pulsante per il quale la finestra di dialogo di clic dovrebbe essere chiusa e l'attività del genitore dovrebbe essere visualizzata senza aggiornare la pagina.

Creare un'attività come di solito la creiamo.

controllare anche CustomDialogActivity.java on android.com

credo u dovrebbe creare attività di dialog.then aiuta

u possibile impostare lo stile e il tema per ur attività da questo ..

3

se non l'hai già provato, allora questo è il modo per ottenere attività di dialogo: nel file manifest, aggiungere alla vostra attività il seguente attributo:

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

questo sta funzionando .. l'attività ha funzionato come finestra di dialogo, ma quando faccio clic fuori da quella finestra di dialogo si chiude automaticamente ...... – Wolverine

+0

prova aggiungi il seguente attributo: android: configChanges = "orientation" quando sono provandolo da solo nella mia applicazione - non sta chiudendo la finestra di dialogoAttività quando sto toccando fuori –

7

Apportare modifiche nel codice secondo le proprie necessità.

Grazie

<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

Grazie per questo, sembra fantastico. +1 – pandabear

2

Per il rilascio di evitare chiusura dell'attività cliccando finestra esterna dall'API 11 come indicato da Vivek utilizzare this.setFinishOnTouchOutside (false);

ma per le API precedenti di questo codice:

@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

Utilizzando stessa attività nei dispositivi mobili e tablet.

Cellulare: -

  1. Goto res -> Valori.
  2. Apre styles.xml e aggiunge le seguenti impostazioni del 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> 

Tablet: - attività di lancio, come finestra di dialogo.

  1. Goto "res".
  2. Crea una nuova cartella "valori-sw720dp".
  3. Creare nuovi styles.xml e aggiungere le seguenti impostazioni del 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> 
Problemi correlati