![](/img/trans.png)
[英]android onActivityResult is not being called in Fragment
[英]Android: onActivityResult in fragment not called
發現很多關於我的問題的帖子,但沒有一個對我有用。 我有一個片段,我必須在textview點擊上調用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;
}
}
那么,如何使用結果代碼將意圖發送回我的片段?
因為,我希望我的片段攔截意圖所以我使用了LocalBroadcastManager 。
在onCreate
of Fragment中,我定義了:
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(
mUpdateUIReceiver,
new IntentFilter(String action));
我的接收器片段:
private BroadcastReceiver mUpdateUIReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//do Stuff
}
};
將發送廣播的活動代碼:
LocalBroadcastManager.getInstance(this).sendBroadcast(
new Intent(String action));
希望它可以幫助那些面臨同樣問題的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.