Tìm thấy nhiều bài đăng liên quan đến vấn đề của tôi nhưng không có bài nào trong số đó phù hợp với tôi. Tôi có một đoạn từ nơi tôi phải gọi số startActivityForResult()
trên một lần xem văn bản. Từ đó, một hoạt động sẽ mở ra nơi người dùng sẽ điền vào một số dữ liệu và gửi nó vào cơ sở dữ liệu. Từ đó, tôi phải chuyển một mục đích chứa mã kết quả. Nhưng onActivityResult() trong đoạn không được gọi.Android: onActivityResult trong phân đoạn không được gọi là
Mã từ mảnh của tôi
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);
Mã từ hoạt động của tôi
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 trong Fragment:
@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;
}
}
Vì vậy, làm thế nào tôi gửi ý định trở lại F của tôi ragment với mã kết quả?
Bạn sẽ có thể tìm ra giải pháp cho vấn đề của bạn [ở đây] [1] [1]: http://stackoverflow.com/questions/6147884/onactivityresult-not-being-called- in-fragment – Exoit
Cảm ơn, tôi đã truy cập vào liên kết. Không làm việc – Nitish
Mặc dù tôi hơi muộn, nhưng đây là cách nó đã làm việc cho tôi, thực hiện 'onActivityResult()' trong chính 'Activity', nhận phần bổ sung' Intent' và chuyển chúng vào một phương thức ' Fragment' có liên quan đến việc cập nhật hoặc truy xuất dữ liệu. –