0

Android V2 マップを表示するフラグメント アクティビティがあります。内部には、呼び出し元のアクティビティから渡す必要があるインテント Extras を処理するために使用される onActivityResult もあります

public class DisplayMap extends FragmentActivity implements LocationListener {

    @Override
    protected void onCreate(Bundle arg0) {
       // TODO Auto-generated method stub
       super.onCreate(arg0);

       setContentView(R.layout.map);
    }

    public void onActivityResult(int requestCode, int resultCode, Intent intent){
       super.onActivityResult(requestCode, resultCode, intent);

       Log.v("TEST", "********************************************");
    }
} 

これは、それを呼び出すアクティビティのコード形式です。

Intent i = new Intent("com.example.DisplayMap");
setResult(RESULT_OK, i);
startActivityForResult(i, 2014);

しかし、どういうわけか onActivityResult は内部で呼び出されません。

前もって感謝します。デニス

4

1 に答える 1

0

名前が示すように、onActivityResult() は呼び出し元のアクティビティにある必要があり、結果を取得します。

呼び出されたアクティビティから結果を返すには、setResult() を使用してそのアクティビティを終了する必要があります。

呼ばれる活動:

Intent i = new Intent();
setResult(RESULT_OK, i);
finish();

RESULT_OK がresultCodeパラメーターとして渡され、 onActivityResult()i がintent

呼び出しアクティビティ:

Intent i = new Intent("com.example.DisplayMap");
startActivityForResult(i, REQUEST_CODE);

結果を受け取るには:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if(requestCode == REQUEST_CODE){
        if (resultCode == RESULT_OK){
            // RESULT OK, take the returned extras from intent and use them
        }
    }
}
于 2014-01-16T21:25:27.127 に答える