0

私のAndroidアプリには、各リスト項目をクリックして新しいアクティビティを起動し、その単一項目に関する詳細情報を表示できる検索インターフェイスがあります。検索結果リストに戻りたい新しいアクティビティに戻るボタンがあります。検索ページに戻るインテントを試しましたが、新しい検索が開始されます。

    Intent backIntent = new Intent(v.getContext(), SearchPage2.class); 
backIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivityForResult(backIntent, 0);
SearchTaDa.this.finish();

私も試してみましたがSearchTaDa.this.finish();finish();どちらもアプリ全体を閉じます。戻るボタンをクリックして検索結果に戻る方法を知っている人はいますか?

4

4 に答える 4

0

問題は、詳細情報アクティビティを開始する他のアクティビティにあると思います。おそらく、新しいアクティビティを開始した後、そこでfinish()を呼び出している可能性があります。これにより、スタックからアクティビティが削除され、戻ることができなくなります。その後、2 番目のアクティビティで finish() を使用して戻ることができるはずです。

于 2012-09-26T15:20:46.617 に答える
0

デバイスの [戻る] ボタンを押すと、検索結果のアクティビティに戻る必要があるため、基本的には、デバイスの [戻る] ボタンをエミュレートするボタンが必要です。

それが機能するかどうかはわかりませんが、ここにトリックがあり
ます。「詳細」アクティビティonBackPressed()で を呼び出すメソッドをオーバーライドしsuper.onBackPressed()てから、クリックリスナーで呼び出しを戻しますonBackPressed()

@Override
public void onBackPressed() {
    super.onBackPressed();
}

//.........
myBackButton.setOnClickListener(new OnClickListener(){
  public void onClick(){
    onBackPressed()
  }
});

setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);「詳細」アクティビティを開始するときに、を削除します。

于 2012-09-26T15:22:15.180 に答える
0

これを実行して、SearchPage2の戻るボタンを押してみてください

Intent backIntent = new Intent(v.getContext(), SearchPage2.class); 
startActivityForResult(backIntent, 0);

スタックをクリアしたり、前のスタックで終了を呼び出したりしないでください。

于 2012-09-26T15:17:11.857 に答える
0

スタック内のすべてのアクティビティが削除されるため、このコードは使用しないでください

backIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

代わりに次のコードを使用してください。

Intent backIntent = new Intent(v.getContext(), SearchPage2.class); 
startActivityForResult(backIntent, 0);
SearchTaDa.this.finish();
于 2012-09-26T15:15:02.437 に答える