2016-01-11 8 views
7

デフォルトのAndroid DatePickerDialogにはandroid.widget.DatePickerが含まれています。Androidの日付ピッカーダイアログで特定の日付を無効にするにはどうすればよいですか?

特定の日付を無効にする方法や特定の日付を選択不可にする方法を知っている人はいますか?

私はDatePickersetMinDate()setMaxDate()になることを許していますが、特定の日付を無効にすることはできません。

この絵には、日付18、26などを無効にしたいと思います:行動に内蔵されていません

enter image description here

答えて

2

- カスタム日付ピッカーを使用する必要があります。

+0

お勧めできますか? –

+2

[このライブラリ](https://github.com/wdullaer/MaterialDateTimePicker)には、特定の日付のみを受け入れ可能なものとして設定する機能があるようです。 – ianhanniballake

+0

またこれを行うことができます - https://github.com/square/android-times-square。あなたが提案したカレンダーも試してみましょう。 –

1

カスタムの日付ピッカーを使用してメソッドを取得しました。まず、日付を文字列として取り、それを日付オブジェクトに変換し、日付をカレンダーオブジェクトに変換する必要があります。最後にsetDisabledDays(calenderobj)を使用します。我々はそれを無効にすることができます。 コードは以下の通りです。

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
       String a = "26-07-2017"; 
       java.util.Date date = null; 
       try { 
        date = sdf.parse(a); 
        MainActivity obj = new MainActivity(); 
        calendar = obj.dateToCalendar(date); 
        System.out.println(calendar.getTime()); 
       } catch (ParseException e) { 
        e.printStackTrace(); 
       } 

       List<Calendar> dates = new ArrayList<>(); 
       dates.add(calendar); 
       Calendar[] disabledDays1 = dates.toArray(new Calendar[dates.size()]); 
       dpd.setDisabledDays(disabledDays1); 
       } 


    private Calendar dateToCalendar(Date date) { 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTime(date); 
     return calendar; 
    } 
+0

このdpdオブジェクトは何ですか? – androidOnHigh

+0

dpd.setDisabledDays(disabledDays1); この行では、無効化をdatepickerに設定しています。そのdpdはカスタム日付ピッカーのオブジェクトです – Bharath

関連する問題