2015-05-11 2 views
4

Показать выбор даты с месяцем и годом только для lollipop 5.0 в android, это можно сделать в более низких версиях, но как я могу это сделать для android 5.0.Показать выбор даты с месяцем и годом только для lollipop 5.0 in android

+1

Вы можете добавить более подробную информацию, пожалуйста? – Peanut

+1

вы пробовали какой-нибудь код? С какими проблемами вы сталкиваетесь? Просьба уточнить. – Piyush

ответ

-3

я написал простой, надеюсь, что это поможет вам

final Calendar c = Calendar.getInstance(); 
    mYear = c.get(Calendar.YEAR); 
    mMonth = c.get(Calendar.MONTH); 
    mDay = c.get(Calendar.DAY_OF_MONTH); 

    DatePickerDialog dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { 
       @Override 
       public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
        txtDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); 
       } 
      }, mYear, mMonth, mDay); 
    dpd.show(); 
+0

Хорошо, спасибо! но я хочу, чтобы только месяц и год также не были датированы даже. –

+0

r u прочитал вопрос ??? прочитайте снова и обновите свой ответ/удалите его. Qtn - ** Покажите выбор даты с месяцем и годом только для lollipop 5.0 в android ** –

5

Это можно сделать, установив DatePicker в режим вращателя и получать Вертушка для Дня и скрытие его программно.

Вот XML (dialog_date_picker.xml):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:padding="8dp" 
    android:layout_height="match_parent"> 

    <DatePicker 
     android:id="@+id/date_picker" 
     android:layout_width="match_parent" 
     android:calendarViewShown="false" 
     android:datePickerMode="spinner" 
     android:layout_weight="4" 
     android:layout_height="0dp" 
     /> 

    <Button 
     android:id="@+id/date_time_set" 
     android:layout_weight="1" 
     android:layout_width="match_parent" 
     android:text="Set" 
     android:layout_height="0dp" /> 

</LinearLayout> 

Вот код, чтобы сделать это.

private Calendar mCalendar; 
... 

mCalendar = Calendar.getInstance(); 

final View dialogView = View.inflate(this, R.layout.dialog_date_picker, null); 
final AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 

DatePicker datePicker = (DatePicker) dialogView.findViewById(R.id.date_picker); 

datePicker.init(mCalendar.get(Calendar.YEAR),mCalendar.get(Calendar.MONTH),mCalendar.get(Calendar.DAY_OF_MONTH),null); 


LinearLayout ll = (LinearLayout)datePicker.getChildAt(0); 
LinearLayout ll2 = (LinearLayout)ll.getChildAt(0); 
ll2.getChildAt(0).setVisibility(View.INVISIBLE); 

dialogView.findViewById(R.id.date_time_set).setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View view) 
    {  
    DatePicker datePicker = (DatePicker) dialogView.findViewById(R.id.date_picker); 

    mCalendar = new GregorianCalendar(datePicker.getYear(), 
    datePicker.getMonth(), 
    datePicker.getDayOfMonth()); 

    alertDialog.dismiss(); 
    } 
}); 
+0

Это скрывает месяц и сохраняет день месяца. Я предполагаю, что порядок, в котором они представлены, зависит от вашего языка. Слепо полагаясь на фиксированный порядок элементов пользовательского интерфейса, я не рекомендую. Это было бы более надежно (хотя и не полностью), если бы вы объединили его с 'Resources.getSystem (@) БогданаАксоненко. GetIdentifier (« день »,« id »,« android ») и сканирование' ll2' детей для child с идентификатором соответствия. –

+0

Или, скажем, сканирование детей - не нужно делать это вручную, все, что требуется, это использовать 'findViewById' –

+1

Не забудьте вызвать' alertDialog.setTitle (R.string.date_of_birth); ',' alertDialog. setView (dialogView) 'и' alertDialog.show(); ' –

4

Это должно работать для всех версий андроид (ИЗА> 11)

datePicker.findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.GONE); 
+1

Я получаю NPE на Lolipop. Просмотр не найден – LunaVulpo

+0

java.lang.NullPointerException: попытка вызвать виртуальный метод 'void android.view.View.setVisibility (int)' для ссылки на нулевой объект. Это журнал ошибок. – Justcurious

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