从子活动返回时,mainActivity中不存在Bundle

时间:2015-02-03 11:32:52

标签: android onactivityresult start-activity

我为结果启动了一个子活动,它将一个包含一些数据的包返回到父活动。

问题是,在onActivityResult()方法的父活动中,我检查了是否有从具有特定名称的子活动返回的包

bunConnAssets

但是switch-case中的if条件表明没有具有给定名称的包

请让我知道我的错误在哪里。

subActivity中的

if (this.mqttSettingsDB != null) {
        Log.d(TAG, "this.mqttSettingsDB is not null.");

        int[] id = this.mqttSettingsDB.getIDs();
        Bundle bunConnAssets = new Bundle();
        Intent intConnAssets = new Intent();
        ....
        ....
        ....

        intConnAssets.putExtras(bunConnAssets);
        setResult(RESULT_OK, intConnAssets);

MainActivity

switch (requestCode) {
    case REQUEST_CODE:
        if (resultCode == MainActivityA.RESULT_OK) {
            if (data != null) {
                if (data.hasExtra("bunConnAssets")) {
                    Log.d(TAG, "Bundle exists");
                } else {
                    Log.d(TAG, "Bundle does not exist");
                }
            }
        } else {
            Log.d(TAG, "resultCode != RESULT_OK");
        }

logcat的

02-03 12:36:38.737: W/SettingsActivity(12659): @finish().
02-03 12:36:38.737: D/SettingsActivity(12659): this.mqttSettingsDB is not null.
02-03 12:36:38.957: W/MQTT_Settings_Frag(12659): @onPause().

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码获取Bundle

Bundle extras = data.getExtras();
if (extras!=null) {
    Log.d(TAG, "Bundle exists");
     } else {
     Log.d(TAG, "Bundle does not exist");   
   }