2012-05-30 5 views
6

NumberPicker을 사용 중이며 API 11 이상을 타겟팅 (3.0 이상) 중이므로 지원되는 NumberPicker을 사용하고 있습니다. 이것은 타이머 응용 프로그램에서 사용되고 있습니다. 버튼이 숨겨져있을 때 레이아웃에서 공간을 차지하지 않도록 원하는대로 증분 및 감소 버튼을 숨길 수 있어야합니다. 이 작업을 시도했습니다 :Android NumberPicker 숨기기 증가 및 감소 버튼

View increment = secs.getChildAt(0); 
increment.setVisibility(View.GONE); 
View decrement = secs.getChildAt(2); 
decrement.setVisibility(View.GONE); 

여기서 secs는 타이머의 초에 대한 NumberPicker입니다. 숫자 (EditText 위젯)가 표시된 곳을 숨기려고하면 위의 코드는 아무 것도하지 않지만 아무 것도 숨기지 않습니다.

그래서, 내 질문은 어떻게 증분 및 감소 단추를 숨기려합니까? 나는 정말로 다른 일부 게시물에서 읽은 것처럼 내 자신의 고유 번호 선택 도구를 만드는 것을 피하고 싶습니다. 그러나 이것이 진정으로 유일한 방법 인 경우 시도해 볼 의향이 있습니다.

감사합니다.

다음은 추가 코드입니다. 스톱워치가 시작되면위한 온 클릭 방법에 코드 :

if (stopPush) 
{ 
startTime = System.currentTimeMillis() - elapsedTime; 
} 
else 
{ 
startTime = System.currentTimeMillis(); 
} 
mHandler.removeCallbacks(startTimer); 
mHandler.postDelayed(startTimer, 0); 

코드 스톱워치 능력 처리 : 당신이하지 않는 경우

this.millis = (int) (elapsedTime/100); 
this.seconds = (int) (elapsedTime/1000); 
this.minutes = (seconds/60); 
this.hours = (minutes/60); 
millis = millis % 10; 
seconds = seconds % 60; 
minutes = minutes % 60; 
hours = hours % 24; 
runOnUiThread(new Runnable() 
{ 
public void run() 
{ 
    hrs.setValue(hours); 
} 
}); 
runOnUiThread(new Runnable() 
{ 
public void run() 
{ 
    mins.setValue(minutes); 
} 
}); 
runOnUiThread(new Runnable() 
{ 
public void run() 
{ 
    secs.setValue(seconds); 
} 
}); 
runOnUiThread(new Runnable() 
{ 
public void run() 
{ 
    mills.setValue((int) millis); 
} 
}); 

답변

4

: 스톱워치 시간을 계산하고 업데이트하는

private Runnable startTimer = new Runnable() 
{ 
public void run() 
{ 
    elapsedTime = System.currentTimeMillis() - startTime; 
    updateTimer(elapsedTime); 
    mHandler.postDelayed(this, REFRESH_RATE); 
} 
}; 

코드 numberpicker에 최소값과 최대 값을 제공하면 단추는 (일반적으로) 표시되지 않습니다.

+0

최소 및 최대 값을 제공하지 않으면 다른 문제가 발생합니까? 기본 min 및 max가 제공되지 않으면 충돌이 발생할 수 있습니까? 제안 해 주셔서 감사합니다! 그것은 다른 모든 것이 여전히 올바르게 작동하는 한 확실히 명확합니다. –

+0

귀하의 제안을 시도하고 버튼이 실제로 사라지지만 numberpicker의 값을 변경하기 위해 setValue를 호출하려고해도 아무런 효과가 없습니다. 그것은 단지 0에 머물러 있습니다. –

+0

이것은 내가 기대했던 것이 아닙니다. 당신이 정확히 무엇을하는지 몇 가지 코드를 게시 할 수 있습니까? – barrel

0

개발자 사이트는

NumberPicker는 미리 정의 된 범위에서 번호를 선택할 수 있도록 위젯입니다 말했다. 이 위젯에는 두 가지 맛이 있으며 사용자에게 표시되는 것은 현재 테마에 따라 다릅니다.

현재 테마가 Theme에서 파생 된 경우 위젯은 위의 증가 버튼과 아래의 감소 버튼을 사용하여 편집 가능한 입력 필드로 현재 값을 표시합니다. 버튼을 길게 누르면 현재 값을 빠르게 변경할 수 있습니다. 입력 필드를 누르면 원하는 값을 입력 할 수 있습니다.

현재 테마가 Theme_Holo 또는 Theme_Holo_Light에서 파생 된 경우 위젯은 현재 값을 위의 작은 값과 큰 값 아래의 편집 가능한 입력 필드로 표시합니다. 보다 작거나 큰 값을 가볍게 두드리면 숫자 축을 위 또는 아래로 움직여 선택된 값을 현재 값으로 만듭니다. Flinging up 또는 down은 현재 값의 증감을 허용합니다. 낮은 값과 큰 값을 길게 누르면 현재 값을 빠르게 변경할 수 있습니다. 현재 값을 탭하면 원하는 값을 입력 할 수 있습니다.

테마 변경을 시도해보십시오.

관련 문제