2012-05-17 33 views
0

我是新来的Android,并且我正在构建一个应用程序,其中我有一个在Dialog的contentView中的xml DatePicker。在该对话框的按钮显示slected日期,我有以下代码:xml DatePicker在对话框contentView不工作

   // get Date Button 
    Button dialogGetVButton = (Button) dialog.findViewById(R.id.GetVerseB); 
    dialogGetVButton.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     int day = pickerC.getDayOfMonth(); 
     int month = pickerC.getMonth(); 
     showEtext.setText(new StringBuilder().append(month + 1) 
        .append("-").append(day).append("-").append("2012")); 
     dialog.dismiss(); 
    } 
    }); 
    // END get Date Button 

它看起来像getDayOfMonth(); and getMonth();不至的DatePicker正确的电话,因为点击该按钮崩溃的应用程序。我希望它所做的就是在showEtext TextView中显示选定的DatePicker日期。有没有人在这些行上做一个自定义的DatePicker?如果是这样,那么完成此操作的正确代码是什么?我知道上面的代码在xml DatePicker自带时不起作用,不会在Dialog的contentView中调用。但是这个代码在对话框中不起作用。

+0

请发布您的logcat错误。 – Sam

+0

我认为相关的logcat错误是java.lang.NullPointerException。这意味着对话框没有看到DatePicker,对吧?我在对话框代码中调用了'pickerC =(DatePicker)findViewById(R.id.picker_c);'但仍然收到了nullexception错误。 – kirktoon1882

回答

0

好的,我想通了。我认为

int day = pickerC.getDayOfMonth(); 
int month = pickerC.getMonth() 

是不正确的调用 - 结果他们是正确的。我的问题是没有正确调用对话框中的DatePicker。最初我在做:pickerC = (DatePicker) findViewById(R.id.picker_c);我认为,只是将DatePicker拉入主要活动。我发现如果我打电话给:pickerC = (DatePicker) dialog.findViewById(R.id.picker_c);掌声对话。在findViewById前面是修复。将DatePicker拖入对话框,以便对话框可以“看见”DatePicker。