Нашел много сообщений о моей проблеме, но никто из них не работал у меня. У меня есть фрагмент, из которого мне нужно вызвать startActivityForResult()
в текстовом клике. Оттуда откроется активность, когда пользователь заполнит некоторые данные и отправит их в базу данных. Оттуда я должен передать намерение, содержащее код результата. Но onActivityResult() в фрагменте не вызван.
Код из моего фрагмента
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);
Код из моей активности
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 в фрагменте:
@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;
}
}
Итак, как мне отправить намерение назад к моему фрагменту с кодом результата?