ошибка onActivityResult

У меня есть активность, которая запускает другую с помощью startActivityForResult. Этот шаг в порядке. Затем второе действие имеет карту, и при нажатии кнопки координаты геоточки передаются в пакет, который используется в первом действии для заполнения EditText. Функция onActivityResult выполняется до конца, после чего программа вылетает и на экране появляется сообщение "Источник не найден".

Это функция на mapActivity:

public void ConfirmLoc(View v){
    double lat = loc.getLatitudeE6()/1E6;
    double lng = loc.getLongitudeE6()/1E6;
    Intent ievloc = new Intent();
    Bundle bevloc = new Bundle();
    bevloc.putDouble("latitude",lat);
    bevloc.putDouble("longitude",lng);
    ievloc.putExtras(bevloc);
    setResult(RESULT_OK,ievloc);
    finish();
}

И это onActivityResult для первого действия:

protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode==1){
        if(resultCode==RESULT_OK){
            EditText loc= (EditText) findViewById(R.id.LocalizacaoEvento);
            bevloc = data.getExtras();
            if(bevloc!=null){
                String latitud = String.valueOf(bevloc.getDouble("latitude"));
                String longitud = String.valueOf(bevloc.getDouble("longitude"));
                loc.setText(latitud+" , "+longitud,TextView.BufferType.EDITABLE);

            }
        }
        else if(resultCode==RESULT_CANCELED){

        }
    }
}

Кто-нибудь может помочь? Благодарность


person Community    schedule 21.12.2012    source источник


Ответы (1)


Вам нужно добавить строку @Override поверх вашего метода onActivityResult. Когда вы сделаете это, вы также добавите следующую строку в качестве первой строки метода:

super.onActivityResult(requestCode, resultCode, data); 

Также убедитесь, что настройки вашего компилятора равны 1.6, а не 1.5, как по умолчанию в Eclipse.

person SalGad    schedule 21.12.2012
comment
Тоже так сделал, проблема осталась. Я поставлю весь код активности. - person ; 21.12.2012
comment
Забыл упомянуть... Вызывающая активность расширяет FragmentActivity. - person ; 21.12.2012
comment
Если вы устанавливаете точку останова в методе OnActivityResult, прерывается ли она, когда вы завершаете () действие карты? Запустите его в режиме отладки и посмотрите (в Eclipse это крошечная кнопка ошибки рядом с кнопкой «Выполнить») - person SalGad; 21.12.2012
comment
Добавляя дополнительные точки останова, вы сможете выяснить, какая строка вызывает сбой. Сможете ли вы найти эту строку? - person SalGad; 21.12.2012
comment
Он правильно выполняет finish() и прерывается сразу после запуска метода onActivityResult. Я вижу координаты в текстовом поле. - person ; 21.12.2012
comment
Просто написано: источник не найден. Это последние строки logcat: 12-21 10:26:57.028: E/AndroidRuntime(21424): обработчик необработанных данных: основной поток завершается из-за необработанного исключения 12-21 10:26:57.148: E/AndroidRuntime(21424): android .app.SuperNotCalledException: действие {com.example.su/com.example.su.LocMap} не вызвало super.onStop() 12-21 10:26:57.148: E/AndroidRuntime(21424): на android. app.Activity.performStop(Activity.java:3804) - person ; 21.12.2012
comment
12-21 10:26:57.148: E/AndroidRuntime(21424): в android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3423) 12-21 10:26:57.148: E/AndroidRuntime(21424): в android. app.ActivityThread.handleDestroyActivity(ActivityThread.java:3494) 12–21 10:26:57.148: E/AndroidRuntime(21424): в android.app.ActivityThread.access$2800(ActivityThread.java:123) 12–21 10:26 :57.148: E/AndroidRuntime(21424): в android.app.ActivityThread$H.handleMessage(ActivityThread.java:1903) 12-21 10:26:57.148: E/AndroidRuntime(21424): в android.os.Handler. диспетчерское сообщение (Handler.java: 99) - person ; 21.12.2012
comment
12-21 10:26:57.148: E/AndroidRuntime(21424): на android.os.Looper.loop(Looper.java:123) 12-21 10:26:57.148: E/AndroidRuntime(21424): на android. app.ActivityThread.main(ActivityThread.java:4370) 12-21 10:26:57.148: E/AndroidRuntime(21424): в java.lang.reflect.Method.invokeNative(собственный метод) 12-21 10:26:57.148 : E/AndroidRuntime(21424): в java.lang.reflect.Method.invoke(Method.java:521) 12-21 10:26:57.148: E/AndroidRuntime(21424): в com.android.internal.os. ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) - person ; 21.12.2012
comment
12-21 10:26:57.148: E/AndroidRuntime(21424): в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 12-21 10:26:57.148: E/AndroidRuntime(21424) : at dalvik.system.NativeStart.main(собственный метод) 12-21 10:26:57.358: E/SemcCheckin(21424): получить уровень аварийного дампа: java.io.FileNotFoundException: /data/semc-checkin/crashdump 12- 21 10:26:57.478: I/dalvikvm(21424): threadid=7: реакция на сигнал 3 12-21 10:26:57.508: I/dalvikvm(21424): Записал трассировку стека в '/data/anr/traces. текст' - person ; 21.12.2012
comment
Можете ли вы добавить еще один метод: @Override public void onStop() { super.onStop(); } для обоих действий? - person SalGad; 21.12.2012