2011-11-02 73 views
1

我今天在阅读了很多关于此的主题。然而,我所看到的所有解决方案都不能成为我的解决方案。我是Android开发新手。我的问题是我的主页有两个按钮 - 即PlayGame和Help。 PlayGame onClicked()将引导用户进入“难度页面”,用户可以选择Easy,Medium或Hard模式。我想要的是,当用户在“难度页面”中按下Android后退按钮时,它将回到主菜单(即可以看到PlayGame和Help的位置),因为我的情况发生的是它回到Android菜单。我完成了我的活动,如下所示,我在两个按钮(帮助和PlayGame)中尝试了不同的方法,但没有给我任何运气。按下后退按钮并没有回到之前的活动Android

这是我的mainmenu。

package com.kfc; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.Window; 
import android.widget.ImageButton; 

public class NewKFCActivity extends Activity { 
    /** Called when the activity is first created. */ 
    ImageButton bPlay, bHelp; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.main); 

    bPlay = (ImageButton) findViewById(R.id.playGame); 
    bPlay.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(v.getContext(), SelectDifficulty.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
      NewKFCActivity.this.startActivity(intent); 

     } 
    }); 

    bHelp = (ImageButton) findViewById(R.id.Help); 
    bHelp.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(v.getContext(), HelpPageOne.class); 
      startActivity(intent); 
      finish(); 
     } 
    }); 


} 
@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    finish(); 
} 
} 

回答

5

请单击帮助菜单完成活动。一旦完成调用,活动将被销毁并从活动堆栈中移除(因此,当您按回时,它不再是以前的活动)。

您应该只在活动完成时完成活动(即用户已完成活动本应允许的任何活动)。您需要将应用程序中的一组活动视为一个堆栈。每次开始一个活动时,它都会放在堆栈的顶部。如果您希望后退按钮将您带回上一个活动,请不要完成它(因为每次调用完成后都会将其从堆栈中移除)。每次用户按下后,当前活动都会从堆栈中“弹出”,系统将恢复其下面的活动。如果用户按下后,堆栈中没有更多来自应用程序的活动,则您的应用程序完成并且用户返回主屏幕。

+0

,所以我不应该完成的活动? –

+0

如果你愿意的话,你可以完成活动,但是你不会在此之后回去。有时候可以完成,有时候不可以。 ;) –

+0

好吧..现在我决定我只是想回到以前..所以这意味着我不需要完成活动?我对么? –

3

一个问题是在这个活动的结尾。当你在暂停时完成活动。该活动是不是在堆栈上了,你按返回加载一遍......你不能加载哪些不是在堆栈上了:)

问候,

+0

所以当我删除onPause(),它应该工作? –

+0

你只需要删除finish();它会工作。 –

+0

怎么还没有工作?我的onclick留下了这个 Intent intent = new Intent(v.getContext(),HelpPageOne.class); startActivity(intent); 它仍然没有工作:( –

相关问题