2

これは簡単な問題だと思いますが、答えが見つかりません。私はこのコードを手に入れました:

 public void onButtonClick(View v) {

    Intent intent = new Intent();
    intent.setAction(android.content.Intent.ACTION_VIEW);
    File file = new File(root + "/Doppen/"+ "doppen.txt");
    intent.setDataAndType(Uri.fromFile(file), "text/*");
    startActivityForResult(intent, 1);                   
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, getIntent());
    if(resultCode==RESULT_OK && requestCode==1){
        System.out.println("RESULT :D");
    }
}

ここで何が悪いのか分かりますか?

テキスト ファイルを開きますが、ユーザーが [保存] をタップした後、別の関数を呼び出したいと思います。これを自動的に行う方法は?
では、ユーザーが「保存」をタップしたとき、またはインテントがいつ完了/終了したかを確認する方法は?

編集1: 問題が見つかりました:コメントif(resultCode==RESULT_OK && requestCode==1){すると、完了時に結果が出力されます。そのため、どこが間違っているのかがわかります。理由の質問:p

編集2:

requestCode は「1」を出力するので、それで問題ありません。ただし、resultCode は「0」を出力し、良くありません。

編集3:

答えが見つかりました。他の人にも役立つかもしれません。
[保存] を押した後、(電話の) 戻るボタンを使用してアプリに戻りましたが、resultCode は "0" になります。

4

1 に答える 1

4

startActivityForResult()の代わりに呼び出しますstartActivity()。アクティビティが完了すると、アクティビティのonActivityResult()メソッドへのコールバックを取得し、そこで必要なことを実行できます。

詳細については、ドキュメントを参照してください。


EDIT: RESULT_OKは標準の結果コードですが、アクティビティは より大きいか等しい他の値を自由に返すことができますRESULT_FIRST_USER。ゼロはRESULT_CANCELEDで、通常は誰かが [戻る] ボタンを押したときに発生します。

于 2012-05-31T12:22:07.777 に答える