1

機内モードを変更するアプリを作りたいです。タイムピッカーとカレンダーがあります。ここで、tpからcalまでの時間を設定します。両方のオブジェクトから時間を制御するために2つのトーストを作成しました。tpからのトーストは正しい時刻を示していますが(fe 13:04)、カレンダーオブジェクトは「設定」後に間違った時刻を示しています(11:12)getTimeinMillis()のようなメソッドを使用した場合にのみ時刻が設定されることを読みましたと呼ばれるので、このメソッドを追加しましたが、まだ機能していません。あなたの答えをありがとう

Button b;
Button b2;
TimePicker tp;
Calendar cal;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    b = (Button)(findViewById(R.id.button1));
    tp = (TimePicker)(findViewById(R.id.timePicker1));
    cal = Calendar.getInstance();
    b2 = (Button)(findViewById(R.id.button2));

    b.setOnClickListener(new OnClickListener()
            {

                @Override
                public void onClick(View arg0) {

                    Toast.makeText(getApplicationContext(),"TimePicker "+ tp.getCurrentHour()+":"+tp.getCurrentMinute(), Toast.LENGTH_LONG).show();
                    cal.set(Calendar.HOUR_OF_DAY,tp.getCurrentHour());
                    cal.set(Calendar.MINUTE,tp.getCurrentMinute());
                    cal.set(Calendar.SECOND,0);
                    cal.getTimeInMillis();
                    Toast.makeText(getApplicationContext(),"Calendar "+ cal.HOUR_OF_DAY+":"+cal.MINUTE, Toast.LENGTH_LONG).show();
                }
            });
4

3 に答える 3

4

フィールドを正しく設定していますが、そのようなカレンダーのフィールドを照会していません。そこで行っているのは、値11のカレンダークラスにHOUR_OF_DAYフィールドのint値を出力することです(ここを参照)。

getTimeinMillisメソッドは、エポック(1970年1月1日00:00:00 GMT)以降のミリ秒数を返すだけです。そこにある必要はありません。

使用する:

Toast.makeText(getApplicationContext(),"Calendar "+ cal.get(Calendar.HOUR_OF_DAY) +":"+cal.get(Calendar.MINUTE), Toast.LENGTH_LONG).show();
于 2012-06-20T14:12:24.277 に答える
4

NunoGonçalvesが提供する答えがあなたの問題を解決します。ただし、ユーザーに日付/時刻を表示する場合は、 android.text.format.DateFormatが提供する日付/時刻フォーマッターを使用することをお勧めします。このようにして、ユーザーが期待する方法で情報が表示されます(たとえば、12時間制と24時間制など)。

だから、このようなもの:

Toast.makeText(this, "Calendar: "
                         + DateFormat.getTimeFormat(this).format(cal.getTime()));
于 2012-06-20T14:21:01.830 に答える
0

次のカレンダーの実装を試すことができます。

Calendar calendar = Calendar.getInstance(Locale.getDefault());

于 2012-06-20T14:14:49.633 に答える