2012-05-04 7 views
3

私は3つのアクティビティを持っています.BとCのうちBはです。アクティビティです。 TabActivityのキーをバックインテントに設定

public void onStop() { 
    super.onStop(); 
    this.finish(); 
} 

は、今私は戻って鍵が

Bに押されたときに活動Cを起動したい

Bは、このコードを使用して起動したとき、私は活動Aを終える アクティビティAが最初に起動され、そしてBはAから起動されます

私は子アクティビティの起動中

@Override 
public void onBackPressed() { this.getParent().onBackPressed(); 
} 

これは、親アクティビティとして助けにはならないが終了し、このコードを使用してキーをバック上書きしようとしました。 「戻る」キーを押したときに実際に何が起きるかは、アクティビティがホーム画面を終了することです。

私はこれも私を助けていないバックキーをオーバーライドし、それに

@Override 
public void onBackPressed() { 
    Intent backIntent = new Intent(); 
    backIntent.setClass(this, main.class); 
    startActivity(backIntent); 
} 

の意向を設定してみました。 この問題の解決策は何か、バックキーを押したときにアクティビティCを起動するにはどうすればよいですか?

+0

試み.... backIntent.setClass(この、C.class)。 – dira

答えて

5

まず、活動Aが、これは代わりにそれを完全に間違ったアプローチで停止したときに、あなたが例えば活動B.

を起動したときに今、あなた

Intent i = new Intent(this, B.class); 
startActivity(i); 
finish(); 

アクティビティを完了する必要があり、活動Aを終えるべきではありませんユーザーが戻るボタンを押したときにアクティビティCを開始したいので、以下のコードを使用してください。

@Override 
public void onBackPressed() { 
    Intent backIntent = new Intent(this, C.class); 
    startActivity(backIntent); 
    super.onBackPressed(); 
} 
+0

あなたの努力に感謝します。私はこれを試した。問題は依然として続きます。アクティビティCは起動していません – darsh

+0

ありがとうございます。それはまた私を助けました。 – Rohit

1

は、ユーザーがデバイスのハード戻るボタンを押したときに呼び出されます

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 

    if (keyCode == event.KEYCODE_BACK) 
    { 
     //Do your code here 
    } 
    return super.onKeyDown(keyCode, event); 
} 
} 

にonKeyDown上書きする必要があります。

次のアクティビティに移動するには StartActivity(新しいインテント(getApplicationContext()、main.class));

+0

これを試してみてください。残念ながら問題は解決しません。 – darsh

0

オーバーライド以下の方法およびインポートイベント.....

public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
// TODO Auto-generated method stub 

    if (keyCode == event.KEYCODE_BACK) 
    { 
     //Write your intent or other code here 
    } 
    return super.onKeyDown(keyCode, event); 
}