2012-05-31 41 views
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){然后它打印出结果,当它完成,所以我知道哪里出了问题,现在为什么问题:对

编辑2:

requestCode确实打印“1”,所以这很好。但是,resultCode输出“0”,不好。

编辑3:

找到了答案,也许也有用别人。
按下保存后,我使用手机的后退按钮重新回到应用程序,但结果代码为“0”。

+0

尝试在'onActivityResult'之前添加“@Override”。 – jmhend

+0

@jmhend感谢您的回复,但没有工作 – Bigflow

回答

3

致电startActivityForResult()而不是startActivity()。活动完成后,您会回到活动的onActivityResult()方法,您可以在其中执行所需的操作。

请参阅the documentation了解更多信息。


编辑:RESULT_OK是一个标准的结果的代码,但活动自由地返回其他值大于或等于RESULT_FIRST_USER。零是RESULT_CANCELED,这通常发生在有人敲回退按钮时。

+0

你可以再次检查我的问题(稍微改变它),我试过这个(也使用互联网的例子),但我似乎无法得到它的工作:( – Bigflow

+0

@ Bigflow:请参阅编辑我的答案。 – Blrfl