2014-07-21 45 views
0

我有一個按鈕來顯示DatePicker。當我點擊按鈕時,它會顯示DatePickerDialog。在這裏,我試圖獲取日期值,我想在TextView中獲取它。但是當我嘗試獲取價值時,我面臨困難。我怎樣才能在TextView中打印日期值?從DatePicker按鈕獲取值時面臨困難?

這是我的代碼。

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
text1=(EditText) findViewById(R.id.editText1); 
text2=(EditText) findViewById(R.id.editText2); 
text3=(EditText) findViewById(R.id.editText3); 
text4=(EditText) findViewById(R.id.editText4); 
date=(Button) findViewById(R.id.datepicker); 
date.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     DatePickerDialog dpd = new DatePickerDialog(MainActivity.this, mDateSetListener, myear, mmonth, mday); 
     dpd.show(); 
    } 
}); 
    final Calendar c = Calendar.getInstance(); 
    myear = c.get(Calendar.YEAR); 
    mmonth = c.get(Calendar.MONTH); 
    mday = c.get(Calendar.DAY_OF_MONTH); 
} 
private void updateDisplay() { 
    // TODO Auto-generated method stub 
    textdate.setText(new StringBuilder() 
    .append(mmonth+1).append("-").append(mday).append("-") 
    .append(myear)); 
} 
private DatePickerDialog.OnDateSetListener mDateSetListener = new 
     DatePickerDialog.OnDateSetListener() { 
      @Override 
      public void onDateSet(DatePicker view, int year, int monthOfYear, 
        int dayOfMonth) { 
       myear=year; 
       mmonth=monthOfYear; 
       mday=dayOfMonth; 
       updateDisplay(); 
      } 
     }; 
+0

你發現了什麼問題?請精心製作 –

+0

當我點擊按鈕時,它顯示DatePicker對話框。但是,如果我選擇任何日期,如果我給完成,那麼應用程序停止工作。它顯示updateDisplay()方法中的錯誤。 – user3663600

回答

0

您還沒有初始化textdate

創建一個全局變量textdate並初始化它像

textdate = (TextView) findViewById(R.id.text_view); 

其中text_view是你TextViewid喜歡你的EditTextButton

0

調用此上無論你的按鈕,你要顯示的選擇器

DialogFragment newFragment = new DatePickerFragment(); 
    newFragment.show(getSupportFragmentManager(), "datePicker"); 

一旦選擇器顯示您將有OK按鈕

public static class DatePickerFragment extends DialogFragment implements 
     DatePickerDialog.OnDateSetListener { 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current date as the default date in the picker 
     final Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 

     DatePickerDialog d = new DatePickerDialog(getActivity(), this, 
       year, month, day); 
     DatePicker dp = d.getDatePicker(); 
     dp.setMaxDate(c.getTimeInMillis()); 
     // Create a new instance of DatePickerDialog and return it 
     return d; 
    } 

    public void onDateSet(DatePicker view, int year, int month, int day) { 
     // Do something with the date chosen by the user 

     tv1.setText(day + "-" + month + "-" + year); 

    } 
} 

在設定日期的方法是指的TextView

0

此代碼可以幫助您解決您的問題...

嘗試......

private DatePickerDialog.OnDateSetListener pickerListener = new DatePickerDialog.OnDateSetListener() { 
    // when dialog box is closed, below method will be called. 
    @SuppressLint("SimpleDateFormat") 
    @Override 
    public void onDateSet(DatePicker view, int selectedYear, 
      int selectedMonth, int selectedDay) { 
     pYear = selectedYear; 
     pMonth = selectedMonth; 
     pDay = selectedDay; 

     // Show selected date 
     SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy"); 
     // saving date to String variable 
     String formatedDate = sdf.format(new java.util.Date(pYear-1900, pMonth, pDay)); 
     // setting date to TextView 


     // **Note :** Make sure that you have defined value to your textview i.e. textview must not null... 
     txt_date.setText(formatedDate); 

    } 
};