Witam,
mam wrażenie, że wszystko zgodnie z googlowymi przykładami. Spędziłem nad problemem masę godzin i pół internetu :) .
Startuję w Androidzie aktywność by uzyskać rezultat (startActivityForResult) następnie próbuję "chwycić" wynik jej działania (onActivityResult). Bez efektu.
Fragment aktywności wywołującej (nadrzędnej) - przechwytujący:
private static final int CHILD_ACTIVITY_ID = 1;
int CurRes; int changed = 0;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CHILD_ACTIVITY_ID) {
Log.d("rezultat", "mysle");
int isDone = data.getIntExtra("RESPONSE", 0);
if ( (isDone /*? 1 : 0*/) != CurRes ){
changed = 1;
CurRes = isDone ;//? 1 : 0 ;
}
}
super.onActivityResult(requestCode, resultCode, data); //moze do usuniecia, ale wersja bez tej linii też nie działa
}
Fragment aktywności wywołującej (nadrzędnej) - wywołanie:
Intent startLerning = new Intent(this, OneCardViewer.class);
startLerning.putExtra("A", (C.getw1()));
startLerning.putExtra("B", (C.getw2()));
startLerning.putExtra("DIR", dir);
startActivityForResult(startLerning, CHILD_ACTIVITY_ID);
Fragment aktywności wywołanej (podrzędnej) - zwrócenie wyniku:
Intent resultIntent = new Intent();
resultIntent.putExtra("RESPONSE", 1);
setResult(RESULT_OK, resultIntent);
finish();
Proszę o pomoc - to pierwsza apka androidowa w której potrzebuję wykorzystać ten mechanizm.
Z góry dzięki!
Dziś zdebugowałem aktywność linia po linii i z całą pewnością onActivityResult w ogóle nie startuje, natomiast zwracany "intent" tworzy się prawidłowo ...