2

私はAndroid開発の最初のステップを経験している経験豊富なJavaプログラマです。私の問題は簡単です、私のonActivityResult()はメインアクティビティで実行されていません。ここに私がしたことがあります。 MainActivityののonCreateメソッドでonActivityResult()がアンドロイドで実行されない

Intent intent = new Intent(MainActivity.this, NewScreen.class); 

    startActivityForResult(intent,RESULT_OK); 

と私は、MainActivityにNewScreen活動で

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     Log.d("Debug", "Received"); 
    } 

をonActivityResultメソッドをオーバーライドしなかった、

Intent intent = new Intent(NewScreen.this, MainActivity.class); 

this.setResult(RESULT_OK,intent); 

Log.d("Debug", "Setting the Result"); 

finish(); 

私のマニフェストファイルが

です
<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".MainActivity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="NewScreen"></activity> 

</application> 

私はすべてのフォーラムを読み、すべてを試しました。私を助けてください。

事前のおかげで、NewScreenアクティビティで

答えて

4

、(パラメータなし)のデフォルトを使用してみてください意向のコンストラクタ...

Intent intent = new Intent(); 

setResult(RESULT_OK,intent); 

Log.d("Debug", "Setting the Result"); 

finish(); 

EDIT:また、 '要求コード' あなた

startActivityForResult(intent, 1234); 
+0

ええ、あなたは正しいです。結果コードが問題です。ありがとう。 – bhargavg

1

は、あなたがそのCalを得ていないことを確認しています。..例えば、RESULT_OK以外の値として良いかもしれない活動に送りますLED。結果コードを印刷してみてください。ゼロの場合、結果がキャンセルされていることを意味する可能性があります。このメソッドが実際に何もしていないという錯覚を与えます。

+0

私はそれを解決しました、結果コードが問題です。 – bhargavg

+0

どうやって解決しましたか?結果コードがゼロになり、インテントがnullになります。おかげで – Eenvincible

5

RESULT_OKをリクエストコードとして使用しました。 RESULT_OKの値は負(実際には-1)です。あなたはNewScreenの活動からの結果を受け取っていませんでした。あなたがrequestCode argumentのドキュメントに見れば、それは言う:活動が終了したときに

requestCode> = 0の場合、このコードは)(onActivityResultに返されます。

したがって、負でない要求コードを定義してstartActivityForResultに使用する必要があります。ここに例があります:

public class MainActivity extends Activity 
{ 

    static final int REQUEST_CODE = 13; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     //...    

     Intent intent = new Intent(MainActivity.this, NewScreen.class); 
     startActivityForResult(intent, REQUEST_CODE); 
    } 
} 
+0

ブラボー!出来た。助けてくれてありがとう... – bhargavg

+0

実際にこの問題の鍵は、[startActivityForResult() '](http://developer.android.com/reference/android/app/Activity.html#startActivityForResult android.content.Intent、%20int)): "負のrequestCodeの使用はstartActivity(Intent)の呼び出しと同じです(アクティビティはサブアクティビティとして起動しません)。 –

関連する問題