0

古い投稿を見たことがありますが、すべての回答がclearFocusを示唆しています。

私の TimePicker はダイアログ内にないため、それを行うことはできません。そのため、いつ clearFocus() 関数を呼び出す必要があるかわかりません。後で TimePicker を変更しようとすると、おそらくアプリがクラッシュします。

Android に付属のアラーム アプリはダイアログなしでこの機能を実行するため、この問題には解決策があると確信しています。

どんな答えでも大歓迎です、よろしく!

4

1 に答える 1

2

ユーザーがプラスまたはマイナスをタップするか、キーボードを使用して手動で時間を編集して、時間または分の値を変更した場合は、TimePicker.OnTimeChangedListener を使用して onTimeChanged アクション処理する必要があります。

そして、これは私のコードです:

アクティビティ:

public class MainActivity extends Activity 
    implements TimePicker.OnTimeChangedListener {

    private TextView resultTime;

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

        resultTime = (TextView) findViewById(R.id.activity_main_textview_resulttime);

        TimePicker timePicker = (TimePicker) findViewById(R.id.activity_main_timepicker);
        {    
            timePicker.setIs24HourView(true);
            timePicker.setOnTimeChangedListener(this);
        }
    }

    @Override
    public void onTimeChanged(TimePicker timePickerView, int hours, int minutes) {
        final String stringNewTime = hours + " : " + minutes;
        resultTime.setText(stringNewTime);
    }   
}

レイアウト:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical" >

    <TimePicker
        android:id="@+id/activity_main_timepicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="14dip"
        android:layout_marginRight="16dip"
        android:focusable="true"
        android:focusableInTouchMode="true" />

    <TextView
        android:id="@+id/activity_main_textview_resulttime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

うまくいけば、それはあなたを助けるでしょう!

于 2012-09-10T21:48:21.817 に答える