2010-10-25 94 views
1

我有一個主要的Activity,它有onActivityResult方法。onActivityResult不適用於android

​​

在我的第二個活動中,我在按鈕Action上寫了該代碼。

public void onClick(View v) { 
     Log.i("button", "button"); 
     goToGrifReferenceAction(); 

     GridReferenceActivity.this.setResult(RESULT_OK, getIntent().putExtra("gpObject", GridReferenceActivity.this.gpBytes)); 
     GridReferenceActivity.this.finish(); 
    } 

所以現在的問題是當第二個活動完成時。 onActivityResult不會在主要活動中調用......任何人都可以告訴我哪裏出錯了。

我打電話給這樣的第二個活動。

@Override 
     public void onClick(View v) 
     {       
      Intent i = new Intent(Main.this, GridReferenceActivity.class); 
      startActivityForResult(i, SUB_ACTIVITY_REQUEST_CODE); 
     } 

,這裏是我的menifest文件

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.anquetMap" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable = "true"> 
    <activity android:name=".Main" 
       android:label="@string/app_name" android:configChanges="keyboardHidden|orientation" android:launchMode="singleTask"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity>  
    <activity android:name=".GridReferenceActivity" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.GridReferenceActivity"/> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
</application> 

<uses-sdk android:minSdkVersion="7" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

我會非常感激他。 非常感謝。

+0

是否必須在「TabHost」或「ViewGroup」的另一個實例中設置結果的活動? – Mannaz 2010-10-25 11:04:49

+0

你的代碼子活動沒有通過requestCode完成活動它應該是像finishActivity(requestCode); – PravinDodia 2013-01-06 01:10:57

回答

4

你的兩個活動必須在同一個任務...

你有沒有在android:launchMode中定義「singleTask」?

+0

是的,但我仍然沒有工作。 – sajjoo 2010-10-25 10:56:24

+2

刪除singleTask – GBouerat 2010-10-25 12:00:17

+1

如果您設置singleTask,則無法使用startActivityForResult()因爲您的活動不會處於相同的任務中 – GBouerat 2010-10-25 12:00:59

0

您如何您使用

startActivity(意向)

startActivityForResult(意向意圖,詮釋requestCode)

您應該使用

Intent intent = new Intent(this, SecondActivity.class); 
startActivityForResult(intent, SUB_ACTIVITY_REQUEST_CODE); 
啓動第二活動
+0

是的,我使用StartActivityForResult(我,requestCode);但仍然無效。 – sajjoo 2010-10-25 10:21:42

0

我只使用了三個參數方法 保護無效onActivityResult(INT requestCode,INT發送resultCode,意圖數據){}

和它的工作。

相關問題