2016-05-29 7 views
0

Привет у меня есть этот код для Datepicker в андроида:Android Datepicker получить значения даты

final TextView tv = (TextView) findViewById(R.id.tv); 
     Button btnDate = (Button) findViewById(R.id.btnDate); 
     btnDate.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Calendar cal = Calendar.getInstance(); 
       DatePickerDialog dpd = new DatePickerDialog(MainActivity.this, MainActivity.this, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); 
       dpd.show(); 
      } 
     }); 
    }  
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {  
     Toast.makeText(MainActivity.this, dayOfMonth + "/" + (monthOfYear + 1) + "/" +year , Toast.LENGTH_SHORT).show();  
    } 
} 

Я хочу, чтобы установить TextView с датой значений, выбранных пользователем, как я могу установить?

ответ

0

Вы можете отформатировать дату, которая получена в onDateSet() обратном вызове, как вы пожелаете. Допустим, вы хотите дату в формате 29/05/2016, то в этом случае вам нужно использовать -

tv.setText(getString(R.string.day_month_year, dayOfMonth, monthOfYear + 1,year)); 

где строка day_month_year объявлена ​​в strings.xml как это -

<string name="day_month_year">%1$s/%2$s/%3$s</string> 
+0

Но из onDateSet() TextView не доступно ... –

+0

Хорошо, решил ... tnx! TextView tv = (TextView) findViewById (R.id.tv); tv.setText (getString (R.string.day_month_year, dayOfMonth, monthOfYear + 1, year)); –

+0

Вам не нужно инициализировать 'TextView' в' onDateSet() '. Объявите его вне любого метода вроде этого: 'private TextView tv;' и инициализируйте его в 'onCreate()' like this - 'tv = (TextView) findViewById (R.id.tv); ' –

Смежные вопросы