[英]Android: onActivityResult is not called
我有一個活動,其視圖包含一個ListView,並且使用了適配器在ListView中顯示項目。
ReceptionistListToEditActivity.java :
private ReceptionistListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_receptionist_list_to_edit);
ArrayList<ReceptionistViewModel> receptionists = getAllReceptionists();
adapter = new ReceptionistListAdapter(ReceptionistListToEdit.this,android.R.layout.simple_list_item_1, receptionists);
ListView receptionistListView = (ListView)findViewById(R.id.ReceptionistList);
receptionistListView.setAdapter(adapter);
}
在適配器上,我單擊了ListView的每個項目上的編輯按鈕,打開了一個彈出窗口。
ReceptionistListAdapter.java:
public static int RECEPTIONIST_SAVED = 1;
private void openEditReceptionistPopup(long receptionistId) {
Intent intent = new Intent(context, EditReceptionistPopup.class);
new DataLoadingProgressDialog(context).showDialog();
intent.putExtra("ReceptionistId", receptionistId);
((ReceptionistListToEditActivity)context).startActivityForResult(intent, RECEPTIONIST_SAVED);
}
在關閉彈出窗口時,我想發回一些我想要在適配器中使用的數據。
EditReceptionistPopup.java
Intent intent = new Intent();
intent.putExtra(someData);
setResult(RESULT_OK, intent);
finish();
但是,永遠不會調用活動類中的onActivityResult方法。
ReceptionistListToEditActivity.java :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == adapter.RECEPTIONIST_SAVED) {
ReceptionistViewModel viewModel = (ReceptionistViewModel) data.getSerializableExtra("receptionistDetails");
adapter.onActivityResult(viewModel);
}
}
我究竟做錯了什么?
確保尚未將清單下的launchMode singleTask
添加到已實現onActivityResult()
的活動中
編輯:
setResult(RESULT_OK, intent);
將您的openEditReceptionistPopup替換為下面的內容並嘗試
在活動中公開上下文
使用公共上下文調用startActivityForResult
public static int RECEPTIONIST_SAVED = 1; private void openEditReceptionistPopup(long receptionistId) { Intent intent = new Intent(context, EditReceptionistPopup.class); new DataLoadingProgressDialog(context).showDialog(); intent.putExtra("ReceptionistId", receptionistId); context.startActivityForResult(intent, RECEPTIONIST_SAVED); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.