我需要显示一个dialogfragment来按下适配器上的项目上的按钮,现在我做到了:
Adapter.class
public class AdaptadorEncuesta extends RecyclerView.Adapter<AdaptadorEncuesta.ViewHolder> {
public class ViewHolder extends RecyclerView.ViewHolder implements
View.OnClickListener {
DialogoGrafica dialogoGrafica = DialogoGrafica.newInstance();
dialogoGrafica.show(((Activity)mContext).getSupportFragmentManager());
}
}
///DialogFragmen.class
public class DialogoGrafica extends DialogFragment {
public static DialogoGrafica newInstance() {
return new DialogoGrafica();
}
}
问题在于:
调用dialogoGrafica.show(((活动)mContext).getSupportFragmentManager());
.show()
时适配器中的
我能做什么?
答案 0 :(得分:0)
我想你需要对DialogoGrafica说你想要展示什么片段。像这样:
showResults
答案 1 :(得分:0)
你可以使用听众
来做到这一点将此界面添加到适配器AdaptadorEncuesta
public interface OnClickedListener {
public void onItemClicked();
}
然后适配器构造函数应该看起来像这样
OnClickedListener mListener;
public AdaptadorEncuesta(OnClickedListener listener) {
mListener = listener;
}
初始化适配器时中的活动
AdaptadorEncuesta adapter = new AdaptadorEncuesta(this)
传递this
并实现您活动中的界面
然后当您按下或调用单击适配器时,您将调用方法onClick()
并在OnClick()
内部,您将调用此类监听器以运行onItemClicked()
方法活性
mListener.onItemClicked();
然后您的活动上的方法onItemClicked()
将运行您已为其界面执行的工具
现在仍然要在方法
中显示对话框@Override
public void onItemClicked(View view) {
dialogoGrafica.show(((Activity)mContext).getSupportFragmentManager());
}
答案 2 :(得分:0)
你没有告诉过这个问题,但我认为getSupport没有找到方法异常......
该方法适用于AppCompatActivity而不是Activity。
所以替换为:
((AppCompatActivity)mContext).getSupportFragmentManager()