我有一个非常奇怪的情况,我的应用程序的一个活动是一个导航抽屉。它打开了一些碎片。在一个片段中,我调用一个包含接口的对话框。从对话框中单击按钮时,将调用interface。然而,接口receiver必须在我的导航抽屉活动中实现,而不是在片段中实现(我真的不明白为什么)。从那里,点击按钮,我想开始一个结果活动。在这一点之前,一切正常,但当我点击最近开始的活动时,我无法获得结果。活动的结果被发送到导航抽屉活动,但我想在片段中执行一个操作。有什么想法吗?
在我的片段中,我称之为对话
mReactivateDialog = new ReactivateDialog(deal);
mReactivateDialog.show(getFragmentManager(), ACTIVATE_DIALOG);
在我的对话框(reactivatedialog)中,我有以下触发接口的代码
mEdit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnDialogButtonClicked.onEditDialogClicked(deal);
dismiss();
}
});
mActivate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnDialogButtonClicked.onActivateDialogClicked();
}
});
return view;
}
public interface OnDialogButtonClicked {
void onActivateDialogClicked();
void onEditDialogClicked(Deal deal);
}
@Override
public void onAttach(Context context) {
try {
mOnDialogButtonClicked = (OnDialogButtonClicked) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString() +
"must implement OnDialogButtonClicked");
}
super.onAttach(context);
}
最后,在我的导航抽屉活动中,下面的代码是用于监听界面的代码
@Override
public void onActivateDialogClicked() {
Toast.makeText(this, "ACTIVATE clicked", Toast.LENGTH_SHORT).show();
}
@Override
public void onEditDialogClicked(Deal deal) {
Toast.makeText(this, "EDIT clicked", Toast.LENGTH_SHORT).show();
startActivityForResult(new Intent(this, CreateNewDealActivity.class)
.putExtra("Deal", deal), 1);
}
现在我想在调用接口时在我的第一个活动(片段)中执行一个操作
1条答案
按热度按时间yb3bgrhw1#
请检查此链接,谷歌文档