当我点击 cardview 对话框时,必须打开。所以这是片段类中的 onClick 方法。
public class Entry_Fragment extends Fragment implements
View.OnFocusChangeListener, View.OnClickListener {
public void onClick(View view) {
if(view == cdAddWork)
{
if(actvEntryCategory.getText().toString().trim().equals("Installation")){
try {
InstActivityDialog dlg;
dlg = new InstActivityDialog(getFragmentManager(),getActivity().getApplicationContext());
dlg.show();//here I am passing this fragment and context as parameters to the constructor in that dialog.
}catch (Exception e){
}
}
}
}
}
这是我的对话类
public class InstActivityDialog extends Dialog {
public InstActivityDialog(FragmentManager fm, Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.installation_dialog); //layout for dialog
setTitle("Installation Activity");
}
}
当我点击片段中的cardview时,我需要打开对话框。为此在onClick方法中我调用对话框。我想将当前片段和上下文传递给对话框。
将fragment
和context
作为参数传递给构造函数时,我犯了什么错误?还在构造函数中接收参数时?
如何将片段和上下文作为参数传递?
任何帮助都将不胜感激。
答案 0 :(得分:1)
如果您的对话框没有显示,那么问题就在发生。
InstActivityDialog dlg = new InstActivityDialog(getSupportFragmentManager(),getApplicationContext());
Dialog绑定到Activity的Context而不是Aplication Context
。所以像下面这样使用它。
InstActivityDialog dlg = new InstActivityDialog(getSupportFragmentManager(),getActivity());
dlg.show();
为了更好地使用FragmentManager
实现Dialog,我建议使用DialogFragment。