2012-05-17 32 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。