2014-04-29 3 views
0

타이타늄으로 개발 한 Android 앱에 내 입력 (2014 년 5 월 30 일 현재 날짜) 기준으로 남은 시간을 자동으로 업데이트하는 라벨을 만들려고합니다. 나는 다음과 카운트 다운 기능을 만드는 자바 스크립트를 사용했습니다 : 누군가가 그것을 설명 할 수 있다면티타늄 자동 남은 시간 남은 라벨

[ERROR] : TiApplication: (KrollRuntimeThread) [821,821] Sending event: exception on thread: KrollRuntimeThread msg:java.lang.IncompatibleClassChangeError: interface not implemented; Titanium 3.2.2,2014/03/05 12:22,96e9a07 
[ERROR] : TiApplication: java.lang.IncompatibleClassChangeError: interface not implemented 
[ERROR] : TiApplication: at ti.modules.titanium.TitaniumModule$Timer.run(TitaniumModule.java:152) 
[ERROR] : TiApplication: at android.os.Handler.handleCallback(Handler.java:615) 
[ERROR] : TiApplication: at android.os.Handler.dispatchMessage(Handler.java:92) 
[ERROR] : TiApplication: at android.os.Looper.loop(Looper.java:137) 
[ERROR] : TiApplication: at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:112) 

그것은 큰 수 : 내 휴대 전화에서 응용 프로그램을 빌드 할 때 불행하게도

var current = 'Today is the day!'; 
var montharray = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); 
function countdown(yr,m,d){ 
    theyear = yr; 
    themonth = m; 
    theday = d; 
    var today = new Date(); 
    var todayy = today.getYear(); 
    var todaym = today.getMonth(); 
    var todayd = today.getDate(); 
    var todayh = today.getHours(); 
    var todaymin = today.getMinutes(); 
    var todaysec = today.getSeconds(); 
    var todaystring = montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec; 
    futurestring = montharray[m-1]+" "+d+", "+yr; 
    dd = Date.parse(futurestring) - Date.parse(todaystring); 
    dday = Math.floor(dd/(60*60*1000*24)*1); 
    dhour = Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1); 
    dmin = Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1); 
    dsec = Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1); 
    if (dday==0 && dhour==0 && dmin==0 && dsec==1){ 
     homeLabel6.text = current; 
     return; 
    } else { 
     homeLabel6.text = dday + 'd:'+ dhour + 'h:' + dmin + 'm:' + dsec + 's'; 
     setTimeout('countdown(theyear,themonth,theday)',1000); 
    } 
} 
countdown(2014,05,30); 

을 나는 다음과 같은 오류가 나타날 이 작품을 만들기 위해 비 호환성이있는 곳으로. 난 그냥 하나의 레이블 시작/중지 단추가 비슷한 이와 유사한 표시하고 싶습니다. 코드 스 니펫에서 위에서 언급 한 것처럼 정보를 원하는 레이블은 homeLabel6입니다. 나는 다른 옵션도 시도했지만 그 중 아무 것도 내 필요에 맞는 것 같지 않습니다.

답변

3

setTimeout 방법은 기능과 시간을 소요하고 당신이 시도 기능 setTimeout('countdown(theyear,themonth,theday)',1000);

의 장소에서 문자열을 전달됩니다

setTimeout(function(){ countdown(theyear,themonth,theday); },1000);

또는 당신이 1 초 이상에서 텍스트를 갱신하고자하는 경우 setInterval도 다음과 같이 사용할 수 있습니다. setInterval(function(){ countdown(theyear,themonth,theday); },1000);

+0

매력처럼 작동합니다. 설명 주셔서 대단히 감사합니다. – MariusNV

관련 문제