我应该如何实现onActivityResult方法

时间:2014-01-16 05:21:29

标签: android android-activity

我正试图访问并从Android音乐厨房中挑选声音。这就是我实施的内容:

Intent intent = new Intent();
intent.setType("audio/*");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_GET_CONTENT);

但问题在于startActivityForResult。在这里,我想对其他活动的startActivityForResult说testActivity,这是我无法访问的。所以我的下一行是:

testActivity.getActivity().startActivityForResult(intent, 0); 

这就是为什么我对在哪里以及如何实现 onActivityResult 方法感到困惑,因为我无法对testActivity做任何事情。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:-1)

从FirstActivity使用startActivityForResult()方法调用SecondActivity

例如:

 Intent i = new Intent(this, SecondActivity.class);
    startActivityForResult(i, 1);

在SecondActivity中设置要返回FirstActivity的数据,如果您不想返回,请不要设置任何。

例如:在secondActivity中,如果要发回数据:

 Intent returnIntent = new Intent();
     returnIntent.putExtra("result",result);
     setResult(RESULT_OK,returnIntent);     
     finish();

如果您不想返回数据:

Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);        
finish();

现在,在您的FirstActivity类中,为onActivityResult()方法编写以下代码

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  if (requestCode == 1) {

     if(resultCode == RESULT_OK){      
         String result=data.getStringExtra("result");          
     }
     if (resultCode == RESULT_CANCELED) {    
         //Write your code if there's no result
     }
  }
}//onActivityResult