2014-03-04 9 views
10

Ich drücke die Navigationsleiste, und wenn ich die Zurück-Taste drücke, wird die App beendet, anstatt zur vorherigen Aktivität zurückzukehren. Wenn ich die XML-Datei ändere, tritt dieses Problem nicht auf. Also ich denke das Problem ist in der XML-Datei. Kann mir jemand sagen, was das Problem ist? Hier ist der XML-code.`Wie schalte Schublade Layout auf BackPress in Android?

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="500dp" 
    android:layout_height="200dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:src="@drawable/blue_train" /> 

<TextView 
    android:id="@+id/trainName" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_marginBottom="200dp" 
    android:layout_marginLeft="14dp" 
    android:text="Train Name" 
    android:textColor="@color/bluedark" 
    android:textSize="15sp" /> 

<EditText 
    android:id="@+id/etName" 
    android:layout_width="150dp" 
    android:layout_height="40dp" 
    android:layout_alignBaseline="@+id/trainName" 
    android:layout_alignBottom="@+id/trainName" 
    android:layout_marginLeft="30dp" 
    android:layout_toRightOf="@+id/trainName" 
    android:background="@drawable/line" 
    android:ems="10" > 

    <requestFocus /> 
</EditText> 

<Button 
    android:id="@+id/getS" 
    android:layout_width="150dp" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/etName" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="40dp" 
    android:background="@drawable/button2" 
    android:text="Get Train Schedule" 
    android:textColor="@color/white" /> 

`

+0

Wenn Sie sagen, Sie ändern die XML und das Problem verschwindet - auf welche Weise ändern Sie es? – SDJMcHattie

+0

Ich fand heraus, wenn ich den EditText entferne, funktioniert es. Aber warum funktioniert es nicht, wenn ich den EditText habe? – alu

+0

Weil der EditText den Fokus anfordert, wenn EditText nicht fokussiert ist, dann gibt es kein Problem – alu

Antwort

35

Dies wird die Schublade schließen, wenn es geöffnet ist und nach hinten gedrückt wird, anstatt Sie zurück zur vorherigen Aktivität (oder ein Verlassen).

private DrawerLayout mDrawerLayout; 

onCreate():

mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
mDrawerLayout.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); 

Hoffnung das wird Ihnen helfen

DrawerLayout drawer... 

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 

    if(drawer.isDrawerOpen(Gravity.LEFT)){ 
     drawer.closeDrawer(Gravity.LEFT); 
    }else{ 
     super.onBackPressed(); 
    } 
} 
+0

Sie können es auch für mehrere Schubladen tun. if (drawer.isDrawerOpen (Gravity.RIGHT)) drawer.closeDrawer (Gravity.RIGHT); –

1
ListView mDrawerList; 

@Override 
public void onBackPressed() { 
// TODO Auto-generated method stub 

if(mDrawerLayout.isDrawerOpen(mDrawerList)){ 
    mDrawerLayout.closeDrawer(mDrawerList); 
}else{ 
    super.onBackPressed(); 
} 
} 
0

Ich habe diese Art und Weise getan.

Verwandte Themen