私のアプリケーションを他のAndroidプロジェクトに実装する必要があり、今ではonActivityResultメソッドが動作しないという問題に直面しています。私が達成したいのは、インテントは結果をクラス1(G_map)に返しますが、それをどのように取得するのか把握できません。java android、onActivityResultが動作しない
I、クラス1を有する:
public class G_map extends GraphObj{
private Context contextOwn;
private Activity act;
public G_map(GraphObjMgr gom, final Context context, GraphSetting gs) {
super(gom, context, gs, R.layout.test_map);
Intent i = new Intent(contextOwn, PickLocationActivity.class);
act.startActivityForResult(i, 1);
//@Override
public void onActivityResult(final int requestCode, int resultCode, Intent data) {
//super.onActivityResult(requestCode, resultCode, data);
Log.e("State", "This won't start.");
}
}
PickLocationActivityが正常に起動すると第二のクラスからIは、第一のクラスに結果を得る必要がある活動。 onActivityResultメソッドは@Overrideにすることはできません。私がコメントしてもメソッドは使用されません。それについて私は何ができますか?私のアプリでは、正常に動作し、私はact.startActivityForResultではなくstartActivityForResultを使用する必要はありません。
私は何とか "act"とonActivityResultメソッドを接続する必要があると思いますが、どうすればよいか分かりません。どんな提案も役に立つでしょう!
クラス2:
public class PickLocationActivity extends AppCompatActivity{
...
Intent intent = new Intent();
intent.putExtra("Location Address", predictions.getPlaces().get(position).getPlaceDesc());
intent.putExtra("placeID", predictions.getPlaces().get(position).getPlaceID());
setResult(CUSTOM_AUTOCOMPLETE_REQUEST_CODE, intent);
finish();
}
実際には、act =(Activity)contextのような値を割り当てます。私はG_mapクラスでそれをやっているので、startActivityResultを呼び出すアクティビティでonActivityResult()をオーバーライドする必要があるということをどういう意味にしていないのですか? –
@RobinPopelka: 'G_map'はそうではありません'Activity'であり、' startActivityForResult() 'を呼び出すアクティビティではありません。どんなJavaクラスであれ、 'act'フィールドの背後にある実装は' onActivityResult() 'を実装するものである必要があります。 – CommonsWare
CommonsWareさん、ありがとうございました:) –