如何按后退按钮返回上一菜单? - Android

时间:2014-02-10 18:29:08

标签: android android-activity scrollview swipe

我正在开发一个应用程序,这就是代码。我有两个问题。

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代码,请问。我也会把它们放进去。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

不确定,但这是我的假设,你可以覆盖onBackPressed()

 @Override
public void onBackPressed() {

}

这一个

您可以跟踪当前按下的按钮。当您单击后退按钮时,您知道跟踪位置,比如它的第5个位置,只需关注位于4rth位置的按钮。

答案 1 :(得分:1)

如果您的菜单位于片段中,则可以将其添加到后台。

BackStack

然后当你按下它时会返回上一个菜单然后退出(按下另一个后退按钮)