我有一个片段,它有一个带有视图列表视图的适配器。 每个视图都有一个按钮,打开一个自定义对话框,里面有两个按钮 - “是”/“否”。 (正面和负面标签)。 我无法实现那些标签压缩的回调。
在我正在使用的自定义对话框中,我总是发送主机片段的TAG,然后执行以下操作:
AlertDialogFragmentCallbacks initiator;
initiator = (AlertDialogFragmentCallbacks) getFragmentManager().findFragmentByTag(mInitiatorFragmentTag);
initiator.onAlertDialogPositiveClick(mId, this);
它可以很好地处理碎片,但现在我的启动器不是片段,而是片段适配器内部的简单视图。
在调试时,我可以看到mInitiatorFragmentTag
确实是视图的标签。但是如何使用该标签找到该视图呢?
答案 0 :(得分:0)
您可以创建一个处理点击的专用类。传递它的构造函数:
例如(我这里没有所有细节,所以我正在制作东西):
public class MyClickHandler implements WhateverClickInterface {
private View root;
private Activity activity;
public MyClickHandler(View root, Activity activity) {
this.root = root;
this.activity = activity;
}
public void whateverInterfaceMethod() {
// Access views for data
// Use activity to start a fragment transaction
// Close the dialog
}
}
然后,您可以为每个将调用它的按钮注册此类的新实例。
基本上,只需确保为您的点击处理程序提供所有相关数据,以便决定如何继续。