2014-01-16 163 views
0

我試圖訪問並從android音樂廚房中選擇聲音。這是我已經實現:我該如何實現onActivityResult方法

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方法,因爲我不能在測試活動做任何事情。有誰能夠幫助我 ?

+0

爲什麼不從testactivity開始活動,然後 – stinepike

+0

你能更清楚你的困惑嗎?爲什麼不能進入測試活動?如果不是那麼你怎麼能寫testActivity.getActivity()? –

+0

testActivity是jar文件的一部分。這就是爲什麼我不能做任何修改他們。 –

回答

-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(); 

,如果你不希望返回的數據:onActivityResult

Intent returnIntent = new Intent(); 
setResult(RESULT_CANCELED, returnIntent);   
finish(); 
在FirstActivity類寫

現在下面的代碼()方法

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 
+0

嘗試再次閱讀我的問題。 –