2012-06-20 3 views
0

비행기 모드를 변경하는 앱을 만들고 싶습니다. 나는 타임 피커와 달력을 가지고있다. 이제 tp에서 cal로 시간을 설정하고 싶습니다. 두 개체에서 시간을 제어하기 위해 2 건의 축배를 만들었습니다. 목표 주가에서 토스트 (13시 4분 철) 나에게 정확한 시간을 표시하지만 나는 시간이 그냥 경우 잘 살고있다 읽었습니다 잘못된 시간 (11시 12분) 을 "설정"후 일정 객체가 getTimeinMillis 같은 methodeds()이 추가되어이 메소드가 추가되었지만 아직 작동하지 않습니다. 귀하의 답변을 주셔서 감사합니다캘린더에서 시간 설정 (안드로이드)

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(); 
       } 
      }); 
+0

당신이 말해 줄 수 ...... –

답변

4

올바르게 필드를 설정하는,하지만 당신은 그런 달력의 필드를 쿼리하지 않습니다. 현재 수행중인 작업은 11 (See here) 값을 갖는 캘린더 클래스에 HOUR_OF_DAY 필드의 int 값을 인쇄하는 것입니다.

메소드 getTimeinMillis은 획기적인 일 (1970 년 1 월 1 일 0시 0 분 0 초 GMT) 이후 밀리 초 수를 반환합니다. 거기에있을 필요가 없습니다.

사용 :

Toast.makeText(getApplicationContext(),"Calendar "+ cal.get(Calendar.HOUR_OF_DAY) +":"+cal.get(Calendar.MINUTE), Toast.LENGTH_LONG).show(); 
+0

덕분에 나는 allready이 바보 같은 실수가 될 것이라고 생각 작정;) –

0

다음 일정 구현을 시도 할 수 있습니다 : 누노 곤살 베스에 의해 제공

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

4

대답은 문제를 해결할 것입니다. 그러나 사용자에게 날짜/시간을 표시 할 때 android.text.format.DateFormat에서 제공하는 날짜/시간 포맷터를 사용하는 것이 더 좋습니다. 이렇게하면 사용자가 예상하는 방식으로 정보가 표시됩니다 (예 : 12 시간 대 24 시간 등). 그래서

, 이런 식으로 뭔가 : 단지 정보를 원하시면 휴대 전화에서 설정 한 시간대

Toast.makeText(this, "Calendar: " 
         + DateFormat.getTimeFormat(this).format(cal.getTime())); 
+0

실제로, 나는 그것에 집중하는 것을 잊었다. :) +1. –