2011-12-07 17 views
0

私はpdfファイルを読むプロジェクトを書いています。私のメインクラスは、ReaderActivityクラスを呼び出すために、このコードを使用しています。プレス「戻る」ボタンを押さないで戻る方法

Intent it = new Intent(this, ReaderActivity.class); 
startActivity(it); 

そしてReaderActivityクラスは、PDFファイルを読むには、以下のようなものです:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String mimetype = "application/pdf"; 
    File file = new File(filepath); 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setDataAndType(Uri.fromFile(file), mimetype); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
} 

私は成功したPDFファイルを開くと、私は「背中を押してください"ボタンとビューは黒です。もう一度「戻る」を押すと、メインのクラスビューに戻ります。 pdfが開くと、「戻る」ボタンを1回押してメイン・クラス・ビューに戻ります。これどうやってするの?

+0

を書く、それは2つのクラスを分割する必要があります。 – brian

答えて

3

...今

あなたが読んで戻ってPDFから押し..youは、あなたがそう設定された任意のレイアウトを持っていなかったリーダーの活動に戻っ来ますあなたは最初 あなたが直接あなたのメインの活動からの眺め意図と呼ばれている必要があります

...黒い画面を参照してください。

しかし、これを行うためにEXTRAアクティビティを作成したとしたら、すぐにそのReaderActivityを削除しなければならないので、2通りの方法で使用できます。ReaderActivity のonPause()

1)

Intent it = new Intent(this, ReaderActivity.class); 
it.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
startActivity(it); 

それとも2)

いくつかの理由でthis.finish();

+0

解決策1は私の問題を解決します。 – brian

1

はい、実際に何が起こったのか、あなたはメインクラスからpdfを開くためのアクティビティを開始しています。再びReaderクラスがpdfを読むためのアクティビティを開始します。それはなぜあなたがそのような問題に直面しているのですか?

問題を解決するには、メインアクティビティからリーダーアクティビティを開かないでください。あなたのメインクラスからpdfを開こうとしてください。 pdfを読むために、Intentが呼び出され、その中でACTION_VIEWを使用したので、それ自体がActivityです。

また、アクティビティを終了し、BackPressed()イベントでメインクラスを呼び出すこともできます。または、「フラグ」を「インテント」に設定することもできます。 like、intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

これを使用して問題が解決することを願っています。

+0

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);を設定しました。 – brian

+0

まだ2回押す必要があります – brian

1

リーダークラスにボタンを追加するだけで済みます。また、ボタンのクリックリスナーでは、リーダーのアクティビティーを単純に終了する必要があります。スタックのメカニズムによって、以前のアクティビティーが手動でクローズされていない場合は自動的に前のアクティビティーに移動します。

this.finish ///in reader class on button click 
3

ヒストリスタックにreadActivityを保存しないでください。

使用

Intent it = new Intent(this, ReaderActivity.class); 

it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
1

あなたはときに今、この

this.finish(); 

ようonRestart()でReaderActivityを終了しようとReaderActivity.Soにおける任意のコンテンツビューを設定されていないため、空白の画面が来ています戻るボタンを押すと、主な活動に直接移動します。これがあなたを助けてくれることを願っています。あなたはReaderActivityを呼び出しているし、その後から、あなたがintent to View PDFファイルを呼び出している

関連する問題