2012-04-03 9 views
8

Chcę użyć activity as dialog i zrobiłem motyw działania jako dialog &. ale mam tu problem jest po kliknięciu poza działalnością jej się automatycznie zamknięta & poprzedniej aktywności rozpocząć pracę ..Aktywność jako okno dialogowe w Androidzie

próbowałem coś zrobić przejrzysty układ nadrzędny nie wygląda jak okna.

Chcę użyć tej aktywności, aby utworzyć nowe konto w mojej aplikacji, ponieważ ma tylko 3 pola, więc na tablecie wygląda na dużą przestrzeń nieużywaną ... więc chcę użyć aktywności jako okna dialogowego .....

thenx z góry ... !!! przykłady zostaną docenione .. !!!!!

Odpowiedz

18

spróbuj następujących nieruchomość

this.setFinishOnTouchOutside(false); 
+0

thenx brat ... jego pracy .... – Wolverine

+0

to działa dobrze –

2

rozpocząć działalność jako dialog i zdefiniowane

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

teraz kiedy jest tartActivity() wyświetli jak wyświetlacz dialogowym i działalności rodzic na plecach, ja wan guzik komu kliknięcie okna dialogowego powinno zostać zamknięte, a aktywność nadrzędna powinna być wyświetlana bez odświeżania strony.

Utwórz aktywność tak, jak zwykle ją tworzymy.

również sprawdzić CustomDialogActivity.java on android.com

myślę, że u należy utworzyć działalność jako dialog.then pomaga

u można ustawić styl i tematyka ur działalności przez ten ..

3

jeśli nie mają już próbowałem, to jest to sposób, aby osiągnąć aktywność jako dialog: w pliku manifestu, dodać do swojej działalności następujące atrybuty:

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

to działa .. aktywność działała jako okno dialogowe, ale kiedy kliknę poza tym oknem dialogowym, jego automatyczne zamknięcie ...... – Wolverine

+0

spróbuj dodać następujący atrybut: android: configChanges = "orientation", gdy jestem próbuję tego samemu w mojej własnej aplikacji - to nie zamyka dialogowości, kiedy dotykam na zewnątrz –

7

Dokonaj zmiany kodu zgodnie ze swoimi potrzebami.

Dzięki

<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

Dziękuję za to, wygląda świetnie. +1 – pandabear

2

Do wydania unikając zamknięcia aktywności po kliknięciu na zewnątrz okna z API 11 jak wspomniano przez Vivek używać this.setFinishOnTouchOutside (false);

ale wcześniejsze API użyć tego kodu:

@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

Stosując taką samą aktywność w urządzeniach mobilnych i tabletów.

Komórka: -

  1. goto res -> wartości.
  2. Otwórz plik styles.xml i dodaj następujące ustawienia kompozycji.

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> 

tabletki: - aktywność Uruchom jako dialog.

  1. Przejdź do "res".
  2. Utwórz nowy folder "values-sw720dp".
  3. Utwórz nowy styles.xml i dodaj następujące ustawienia kompozycji.

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> 
Powiązane problemy