0

나는 오래된 글을 보았고 모든 대답은 clearFocus에게 제안합니다.Timepicker의 편집에서 시간을 얻으십시오 Text

내 TimePicker가 대화 상자 안에 없기 때문에 clearFocus() 함수를 호출해야 할 때 알 수 없으므로 아마도 TimePicker를 수정하려고하면 내 응용 프로그램이 손상 될 수 있습니다. .

안드로이드와 함께 제공되는 알람 앱이 대화 상자없이이 기능을 수행하기 때문에이 문제가 해결 될 것이라고 확신합니다.

아무 대답도 환영받습니다, 감사합니다!

답변

2

당신은, 또는 수동으로 실시 시간을 editting에 키보드를 사용하여 사용자가 플러스 또는 마이너스에 눌러 시간 또는 분 값을 변경 한 경우 조치를 onTimeChanged 처리 TimePicker.OnTimeChangedListener를 사용해야합니다.

는 그리고 이것은 내 코드입니다 :

활동 :

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> 

희망, 그것은 당신을 도울 것입니다!

+0

고마워,하지만 그것은 나를 위해 작동하지 않습니다. OntimeChanged는 inputText를 사용하여 시간을 수정할 때 등록되지 않습니다. – user1205781

+0

커서가시 또는 분 필드에 중점을두고 숫자를 입력하면 변경 사항을 처리하지 않습니다. 당신이 무언가를 타자를 치는 것을 아십시오. - 분, 그리고 나서 초점을 맞추면 변화를 처리 할 것입니다! – JunR

+0

글쎄, 난 그냥 시간 필드에 커서를 집중하고 뭔가를 편집하면 onTimeChanged 함수가 호출된다는 것을 알았습니다. 그러나 두 번째 NumberPicker (minutesField)에서 동일한 작업을 수행하면 아무 것도 발생하지 않습니다. – user1205781

관련 문제