1

私はDataActivity、ユーザーにフォームに記入してからデータを返すように依頼する必要があるを持っていますMainActivity

DataActivityこのように呼び出されMainActivityます:

Intent i = new Intent();
i.setClass(this, DataActivity.class);
startActivityForResult(i,RESULT_OK);

DataActivityこのようにデータインテントを返す必要がありますMainActivity

Intent i = new Intent();
i.putExtra("funcX", ((EditText)findViewById(R.id.data_eq_x)).getText().toString());
i.putExtra("funcY", ((EditText)findViewById(R.id.data_eq_y)).getText().toString());
i.putExtra("constants", (Serializable)constants);
setResult(RESULT_OK,i);
finish();

しかし、この後onActivityResultは呼び出されません...MainActivityにアクセスしようとすると、NullPointerexceptionが発生します。funcXfuncYMainActivity

注:constantsこのコードをテストしたとき、変数はnullになる可能性があり、実際にはnullでした。

エミュレーターのAndroid2.2で開発しています。

4

1 に答える 1

2

startActivityForResultのパラメーターrequestCodeのドキュメントを読む

requestCode >= 0 の場合、このコードは、アクティビティの終了時に onActivityResult() で返されます。

RESULT_OK は -1 に等しい..

リクエストコードを正の値に変更して機能させます

Intent i = new Intent(this, DataActivity.class);
startActivityForResult(i,345);
于 2012-10-22T18:19:45.657 に答える