2011-09-14 8 views
0

たとえば、新しいアクティビティを開始すると、前のアクティビティにfinish()を戻すことができます。コンテンツビューの設定からどのように戻ることができますか?などAndroid:setContentViewからどのように戻ってきますか?

setContentView(new example(context)); 

今私は私の表面上の眺めです。私が尋ねる理由は、現在、表面のビューから戻るボタンを押すと、ゲームを完全に終了するからです。 (私はsuper.OnDestroyでonDestroyメソッドを持っています)

私のサーフェスビューには、ゲームループスレッドをfalseに設定するsurfaceDestroyedメソッドがあります。私はコンテンツビューを自分のメニューに戻すためにここに何かする必要があると仮定していますか?

私がこれらの事柄の文脈を間違ったものにしたり、愚かなものにしてしまうと、物事の仕組みの正しい考え方を教えてください。 :D

ありがとうございます!

答えて

1

あなたは常にアクティビティの範囲にいます。したがって、SurfaceViewを表示していても、そのSurfaceViewはアクティビティに含まれています。アプリケーションのスタックに現在のアクティビティの下にアクティビティがない場合、戻るボタンはあなたのアプリケーションを終了します。ただし、アクティビティのonKeyDownをオーバーライドして独自の条件付きロジックを実行することで、バックボタンを明示的に処理できます。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     // This is a method I created in my Activity to execute my custom logic 
     // related to the user pressing the back button 
     return handleBackButton(keyCode, event); 
    } 
    return super.onKeyDown(keyCode, event); 
} 

Activityで定義されたonBackPressed方法があるのですが、それはAPIレベル5で導入されましたので、あなたは、あなたは、Android 1.6(API 4)私は「

+0

パーフェクトDooooood! – KRB

0

をサポートしている場合にonKeyDown行う必要があります私は何かを逃した場合、私を許してください。しかし、その状態に基づいてcontentviewを設定するブール変数を使用できませんでしたか?

Boolean sView 

if (sView = true){ 
setContentView(new example(context)); 
} 
if (sView = false){ 
setContentView(new example(context)); 
} 
1

最も良い方法はインテントを使用することです。

startActivity(new Intent(this, ClassYouWantToReturn.class)); 

setContentView()は、データが失われるため、多くの助けになりません。

関連する問題