-2

DatePickerDialogを持つアプリがあります。異なるデバイスで同じコードを実行すると、異なるandroidを実行すると、異なるダイアログが表示されます。アンドロイドの異なるバージョンでは、同じウィジェットが見た目が異なる可能性があるという事実を理解していますが、なぜウィゲットの機能が同じソースコードと異なる必要があるのですか。

以下は2つのウィジェットです。1つ目はandroid2.3.3で、2つ目はAndroid4.0.4です。見た目が異なることはわかっていますが、2.3.3バージョンと同じように、ウィジェットの上部に日付を反映させたいのですが、4.0.4ではそうです。4.0.4で「2012年11月8日(木)」が表示されないのはなぜですか?

2.3.3

4.0.4

4

2 に答える 2

1

4.0.4で「2012年11月8日(木)」が表示されないのはなぜですか?

その決定をした人だけが答えることができます。もし私がそれを突き刺さなければならなかったら、彼らはそれがどういうわけかもっときれいだと思ったと思います。

もちろん、必要なすべての情報を希望どおりに表示する独自の日付ピッカーダイアログを自由に作成できます。アプリケーションをすべてのAPIバージョンで100%一貫性のあるものにすることを検討している場合は、これがおそらく最善の方法です。

編集:

DatePickerDialogのソースコードは次のとおりです

DatePickerDialogのonDateChanged()をオーバーライドして、必要な効果を得ることができるようです。現在投稿するコードのサンプルチャンクに取り組んでいます。

もう一度編集:

これが、アクセスできる4.0.3デバイスで正しく機能するようにするスニペットです。

   df = DateFormat.getDateInstance(DateFormat.FULL);
   mCal = Calendar.getInstance();
   // Create a date picker dialog
   DatePickerDialog datePickerDialog = new DatePickerDialog(this,datePickerDialogListener, year, month, day){
       @Override
       public void onDateChanged(DatePicker view, int year,int month, int day){
           mCal.set(Calendar.YEAR, year);
            mCal.set(Calendar.MONTH, month);
            mCal.set(Calendar.DAY_OF_MONTH, day);
           setTitle(df.format(mCal.getTime()));
       }
   };

ダイアログが表示される直前に、コードを追加して最初に設定する必要があります。

于 2012-11-08T15:01:12.157 に答える
0

元々(2.3以前[honeycomb?])、タイトルは現在の日付に自動的に更新されました。彼らはそれが必ずしも望ましいとは限らないことに気付いたと思います(たとえば、2.3で「プレーンテキスト」のタイトルを設定するのは面倒です)。そこで彼らはそれをプレーンテキストに変更しました。コードの両方のバージョン(2.34.0 )を確認できます。4.0よりも2.3のように見せたほうが簡単だと思いますが、カスタマイズする必要があります。

于 2012-11-08T15:03:33.037 に答える