2016-08-26 5 views
0

年のみを表示するリストピッカーを作成する必要があります。年リストのダイアログのみを取得する方法

しかし、私は今年が来年に自動的に増えることを願っています。

私はDatePickerでこれを試しましたが、年ピッカーだけは表示されません。

どうすればいいですか?

答えて

1

使用java.time

、面倒な古いレガシー日時クラスの近代的な交換をjava.timeクラスを使用します。

年の決定は、日付を決定することを意味します。日付を決定するには、タイムゾーンが必要です。任意の瞬間について、日付は地球の周りでゾーンごとに異なります。たとえば、フランスの深夜0時から数分後、モントリオール・ケベックではまだ「昨日」の間、新しい日があります。

指定しない場合、JVMの現在のデフォルトのタイムゾーンが適用されます。そのデフォルトは異なります。実行時にはとなります。したがって、常に望ましい/予想されるタイムゾーンを明示的に指定する方がよいでしょう。

年のみにしたい場合は、このタイムゾーンの問題は明らかに年末/年の初めに適用されます。しかし、年間の365日または366日を総括してプログラムすることもできます。

LocalDate

LocalDateクラスは、時間日の時間帯なしなし日付専用の値を表しています。

LocalDate ld = LocalDate.now(z); 

最後に質問します。

int year = ld.getYear(); 

翌年と昨年を計算します。

int nextYear = (year + 1); 
int lastYear = (year - 1); 

数字ピッカーを表示するには、これらの値を使用します。

java.time

についてjava.timeフレームワークは、Java 8に組み込まれており、後にされています。これらのクラスは、java.util.Date.Calendar、& java.text.SimpleDateFormatなどの古い面倒な日時クラスに取って代わります。

にあるJoda-Timeプロジェクトは、java.timeへの移行を推奨しています。

詳しくはOracle Tutorialをご覧ください。そして、多くの例と説明のためにStack Overflowを検索してください。

多くのJavaの。Javaの& 7をThreeTen-Backportにバック・ポートし、さらにAndroidThreeTenABPHow to use…を参照)に適合させています。

ThreeTen-Extraプロジェクトは、追加のクラスでjava.timeを拡張します。このプロジェクトは、将来のjava.timeへの追加の可能性を証明する土台です。

+0

お返事ありがとうございます。 – pmb

0

デフォルトのTimePickerを使用することはできません。しかし、あなたはMHの "ハッキー" solutionを実装することができます。

また、NumberPickerを使用して、利用可能な年を表示することもできます。

関連する問題