Gefunden zahlreiche Post zu meinem Problem, aber keiner von ihnen für mich ausgearbeitet. Ich habe ein Fragment von wo ich startActivityForResult()
auf einem Textview klicken muss. Von dort aus öffnet sich eine Aktivität, bei der der Benutzer einige Daten füllt und sie an die Datenbank sendet. Von dort muss ich eine Absicht übergeben, die den Ergebniscode enthält. Aber das onActivityResult() im Fragment wird nicht aufgerufen.Android: onActivityResult in Fragment nicht genannt
-Code von meinem Fragmente
Intent in = new Intent(getActivity(), NetBarrelActivity.class);
in.putExtra(AppUtility.ORDER_ID, orderDAO.getOrderNum());
in.putExtra(AppUtility.TICKET_ID, 2);
startActivityForResult(in, AppUtility.REQUEST_CODE);
-Code aus meiner Tätigkeit
Double NetBarrels = crudeNetCalculator(GrossBarrels,
ProductObsTemp, ProductObsGravity, ProductBSW);
db.updateTank(OrderID, TicketTypeID, CarrierTicketNum,
TankNum, TankTypeID, ProductObsTemp,
ProductObsGravity, ProductBSW, GrossBarrels,
NetBarrels);
Intent in = new Intent();
setResult(RESULT_OK, in);
finish();
onActivityResult in Fragmente:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG, "onActivityReslt called");
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case AppUtility.REQUEST_CODE:
if(resultCode == Activity.RESULT_OK){
if (mOrdersDAO.getTicketType().equals(AppUtility.NET_BARREL)) {
ArrayList<OrderTicketsDao> mOrderTicketsDaos = dbHandler
.getOrderTicket(mOrdersDAO.getOrderNum());
if (mOrderTicketsDaos != null && mOrderTicketsDaos.size() > 0) {
TankAdapter mTankAdapter = new TankAdapter(getActivity(),
mOrderTicketsDaos);
listTank.setAdapter(mTankAdapter);
mTankAdapter.notifyDataSetChanged();
}
}
}
break;
default:
break;
}
}
Also, wie ich Absicht zurück zu senden mein f ragment mit Ergebniscode?
sollten Sie in der Lage sein, eine Lösung für Ihr Problem zu finden [hier] [1] [1]: http://stackoverflow.com/questions/6147884/onactivityresult-not-being-called- In-Fragment – Exoit
Danke, ich habe den Link schon besucht. Habe nicht gearbeitet – Nitish
Obwohl ich etwas spät dran bin, aber so hat es bei mir funktioniert, implementiere das 'onActivityResult()' in der 'Activity' selbst, erhalte die' Intent'-Extras und übergebe sie an eine Methode von ' Fragment ", das relevante Daten zum Aktualisieren oder Abrufen von Daten verwendet. –