2012-05-03 59 views
1

以下代码在用户单击EditText时显示日期选取器(作为弹出对话框)。 showDialog()调用onCreateDialog()。代码工作正常,除非它在Fragment中实现。在片段中,对话框不会显示。在Android片段上显示对话框时出现问题

edtTxtDateTime.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       showDialog(DATE_DIALOG_ID); 
      } 
     }); 

@Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
      case DATE_DIALOG_ID: 
       // Displaying Date & Time as a dialog 

     } 
     return null; 
    } 

我试图使用DialogFragment API实现相同的行为,但单击EditText时无法获得对话框。

任何建议/提示将有所帮助。

+0

当您在片段中调用它时,您是调用getActivity()。showDialog()? – JRaymond

+1

很多事情在这里可能是错误的...显示实际的代码... – TacB0sS

+0

你是否遵循了参考http://developer.android.com/reference/android/app/DialogFragment.html中的示例 – techiServices

回答

0

确保您使用的是正确的上下文在Fragment代码中显示对话框。您需要使用父Activity的上下文。在您的片段中,您可以通过调用以下函数获取活动(并更正上下文):

getActivity();