2014-02-10 103 views
0

我正在開發一個應用程序,這是代碼。我有兩個問題。如何按下後退按鈕返回上一級菜單? - Android

mainactivity.java

package com.shashank.sharjahinternationalairport; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ImageButton; 

    public class MainActivity extends Activity { 
ImageButton flightInfoButton; 
ImageButton airportGuideButton; 
ImageButton visitorInfoButton; 
ImageButton saaDcaButton; 
ImageButton cargoButton; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    flightInfoButton = (ImageButton) findViewById(R.id.flightInfo); 
    airportGuideButton = (ImageButton) findViewById(R.id.airportGuide); 
    visitorInfoButton = (ImageButton) findViewById(R.id.visitorInfo); 
    saaDcaButton = (ImageButton) findViewById(R.id.saaDca);   
    cargoButton = (ImageButton) findViewById(R.id.cargo); 

    airportGuideButton.setOnClickListener(new OnClickListener(){ 
    @Override 
    public void onClick(View V){ 

     setContentView(R.layout.airport_guide); 

    } 
    }); 
    visitorInfoButton.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View V){ 

      setContentView(R.layout.visitor_info); 

     } 
    }); 
    saaDcaButton.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View V){ 

      setContentView(R.layout.saa_dca); 

     } 
    }); 
    } 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

所以這是Java代碼。在進入airport_guide或saa_dca或visitor_info之後,如果按下後退按鈕,應用程序將關閉而不是返回主菜單。這是與活動生命週期有關的事情,我應該在那裏包括什麼?如果是這樣,請告訴如何。我是android開發新手。

這是saa_dca.xml代碼

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 
<ImageButton 
    android:id="@+id/corporateProfile" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
<ImageButton 
    android:id="@+id/infoForAirline" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
<ImageButton 
    android:id="@+id/businessPolicy" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
<ImageButton 
    android:id="@+id/saftyAndSecurity" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
    <ImageButton 
    android:id="@+id/trafficRights" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
<ImageButton 
    android:id="@+id/securityPasses" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
<ImageButton 
    android:id="@+id/photography" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
<ImageButton 
    android:id="@+id/mediaCentre" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
    <ImageButton 
    android:id="@+id/customerRelations" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
<ImageButton 
    android:id="@+id/contactUs" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

,你可以看到,有十個圖像按鈕在這裏,但是當這種點擊相應的按鈕後打開,所有的按鈕將不適合在屏幕上,我認爲如果按鈕超出屏幕,android默認提供上下滾動,但顯然情況並非如此。所以我如何包含這個上下滾動的滑動功能呢?我應該在哪裏包括它?如果你想要其他的xml代碼,請問。我也會把它們放在一起。

預先感謝您。

回答

1

不知道,但這裏是我的假設,可以覆蓋onBackPressed()

@Override 
public void onBackPressed() { 

} 

這個

您可以跟蹤哪些按鈕,當前按下的。當你點擊後退按鈕時,你知道跟蹤的位置,說出它的第5個位置,只需對焦在4位置的按鈕。

1

如果您的菜單位於片段中,您可以將其添加到後退堆棧中。

BackStack

然後,當你按下它後面會回到上級菜單退出之前(在另一個後退按鈕按下)