2010-05-10 10 views
5

मैं DatePicker प्रदर्शित करना चाहता हूं जहां वर्ष फ़ील्ड दिखाई देगी या नहीं, चेकबॉक्स के अनुसार।वर्ष फ़ील्ड के साथ या उसके बिना डेटपिकर प्रदर्शित करना

लेकिन मुझे इसे लागू करने का कोई तरीका नहीं मिला।

कोई विचार कृपया?

अग्रिम धन्यवाद।

+0

जहां तक ​​मुझे पता है कि कम से कम एंड्रॉइड एसडीके 1.5 – Jorgesys

+0

में संभव नहीं है मुझे लगता है कि आप लेस बर्बाद कर देंगे डेटपिकर को कोड करके स्वयं का समय जो आपकी सभी ज़रूरतों को फिट करता है। – Cristian

+0

यह थोड़ी मुश्किल आवश्यकता है कि उपलब्ध तारीखें वर्ष के आधार पर भिन्न होती हैं ... अपने स्वयं के संस्करण (कम से कम वर्ष-दृश्य संस्करण के लिए) लिखने पर विचार करने की सलाह शायद अच्छी है। – Adrian

उत्तर

1

यह एक DatePicker से साल क्षेत्र को निकालना संभव नहीं है के रूप में, मैं अंत में जोड़ने का निर्णय एक CheckBox आदेश एक समाधान को लागू करने में "वर्ष फ़ील्ड को अनदेखा"।

-1

मुझे लगता है कि Any+Time™ DatePicker/TimePicker AJAX Calendar Widget आपके लिए काम कर सकता है। इसमें चुनने की क्षमता है कि कौन से फ़ील्ड का उपयोग करना है और एक दोस्त ने मुझे बताया कि यह अपने एंड्रॉइड फोन पर अच्छा काम करता है। बस जांच करें कि चेकबॉक्स चेक किया गया है या फिर एक स्ट्रिंग स्ट्रिंग के साथ पिकर बनाएं जो या तो करता है, या नहीं, तदनुसार एक वर्ष विनिर्देशक होता है।

+0

धन्यवाद लेकिन मैं जावास्क्रिप्ट के साथ अपना कोड मिश्रण नहीं करना चाहता, मुझे लगता है कि यह मेरे आवेदन को बहुत जटिल करेगा। – tbruyelle

2

DateSlider पर एक नज़र डालें, डेटपिकर के लिए एक शानदार, अनुकूलन विकल्प।

+0

फिक्स्ड .......... –

+0

फिक्स्ड ......... +1 – JoxTraex

2

चेकबॉक्स का देखने के लिए अपनी जरूरत के रूप में चेक बॉक्स श्रोता सेट

if(id == R.id.event_checkBox_year) 
    { 
     if(ch.isChecked()) 
     { 
      visiblity = View.GONE; 
     } 
     else 
     { 
      visiblity = View.VISIBLE; 
     } 
     showHideYear(visiblity); 
    } 

private void showHideYear(int visiblity) 
{ 
    try { 
      Field f[] = date.getClass().getDeclaredFields(); 
      for (Field field : f) { 
       if (field.getName().equals("mYearSpinner") ||field.getName().equals("mYearPicker")) 
       { 
        field.setAccessible(true); 
        Object yearPicker = new Object(); 
        yearPicker = field.get(date); 
        ((View) yearPicker).setVisibility(visiblity); 
       } 
      } 
     } catch (SecurityException e) 
     { 
      Log.d("ERROR", e.getMessage()); 
     } 
     catch (IllegalArgumentException e) 
     { 
      Log.d("ERROR", e.getMessage()); 
     } catch (IllegalAccessException e) 
     { 
      Log.d("ERROR", e.getMessage()); 
     } 
} 
0

यहाँ दिनांक पिकर संवाद पर साल स्पिनर या वर्ष पिकर नहीं दिखाए जाने का समाधान है

try { 

     Field f[] = datePickerDialog.getClass().getDeclaredFields(); 
     for (Field field : f) { 
      if (field.getName().equals("mDatePicker")) { 
       field.setAccessible(true); 
       Object datePicker=new Object(); 
       datePicker=field.get(datePickerDialog); 
       Field[] fields=datePicker.getClass().getDeclaredFields(); 
       for(Field field1:fields){ 
        if(field1.getName().equals("mYearSpinner") || field1.getName().equals("mYearPicker")){ 
         field1.setAccessible(true); 
         Object ye=field1.get(datePicker); 
         ((View)ye).setVisibility(View.GONE); 
        } 
       } 
      } 
     } 
    } 
    catch (SecurityException e) { 
     Log.d("ERROR", e.getMessage()); 
    } 
    catch (IllegalArgumentException e) { 
     Log.d("ERROR", e.getMessage()); 
    } 
    catch (IllegalAccessException e) { 
     Log.d("ERROR", e.getMessage()); 
    } 
0

एक लाइनर:

getDatePicker().findViewById(Resources.getSystem().getIdentifier("year", "id", "android")).setVisibility(View.GONE); 
संबंधित मुद्दे