안녕하세요..쉬운것같은데도...답이 안나와서 질문을 다시하게됩니다.
문자열 배열이 있습니다. {50개 정도}
여기서 두개의 버튼(<, >)을 만들어 계속 배열을 순환할 수 있습니다.
여기서 배열에서 보이는 문자열이 보이는 시간을 누적하고 싶습니다.
그러기 위해 버튼이 첨에 눌러진 시간에서 마지막에 눌러진 시간을 구하여 시간을 누적하면 될것같은데..
생각만 되지 코딩이 잘 안되는데요...이러한 예시코드나 도움이 될만한 코드를 가지고 계신분 계신가요?
도와주세요..
구현하고자 하는 것은 티비 채널 같이 채널 업다운을 하는 것이였습니다.
원래는 영상을 받아 하는 것이지만 전 아래 코드 처럼
문자열에 채널 이름을 몇개 써놨습니다.
그리고 버튼 두개로 채널을 변경할 수 있죠
그중에 한 문자열마다 보여지는 시간이 티비를 시청하고 있다 생각을 하고 그 보여지는 시간을 누적하고 어느 채널을 많이 보았는지 시간을
측정 해보려 하는 것입니다.
그런데 어떻게 시간누적을 구현을 해야 할지가 막막해서 질문을 올린것닙다.
String word[] ={"CH2 육아방송", "CH3", "CH4 sbs", "CH5 kbs2", "CH6 tvn"}; //채널 문자열
public void btn1_action() {
if(i>=0){
word[i] = word[i];
tv.setText(word[i]);
i=i-1;
}
if(i<0)
{
i=4;
word[i] = word[i];
tv.setText(word[i]);
i=i-1;
}
}
노출 시간을 누적한다고 하신다길레 전체의 모든 노출 시간을 누적하신다고 하신줄 알았는데,
사실 이런걸 누적할 필요가 있나 하고 이상하게 생각해서 댓글을 남긴거였는데,
전체의 모든 노출 시간이 아니라,
각각 배열에 대한 독립적인 노출 시간 누적이군요.
일단 2차원 배열로 구현하시는 게 좋을 듯 합니다. = String word[][]
현재 시간을 받아오는 함수는 = System.currentTimeMillis()
이렇게 두가지만 있으면 되겠네요.
일단 지금 코딩할 여건이 안되서 여기에 즉흥적으로 코딩 몇줄만 적어보겠습니다.
word[0][0] = "CH2 육아방송";
이렇게 되어 있다고 예를 들면, (< , >) 버튼을 눌러서 이 채널에 넘어갔다고 가정 합시다.
일단 long nowval; 선언하시구요.
넘어가는 즉시 이벤트
word[0][1] = word[0][1] + (System.currentTimeMillis() - nowval);
그리고 다시 버튼을 눌러서 또 다른 채널을 넘어갈 경우
nowval = System.currentTimeMillis();
* 여기서 숫자 0은 0을 적는게 아니라, 해당 채널을 저장하고 있는 변수를 넣어야겠죠. 1은 그대로 적고요.
이렇게 해두면
word[?][1] 에는 해당 채널에 머물러 있던 시간이 계속 누적 될 것으로 보이네요.
즉
word 배열의 왼쪽 숫자는 채널이 되는 거고, 오른쪽 숫자 1은 누적시간을 저장하는 배열이 되는거죠.
일반적인 프로그램이 아닌듯 하군요.(뭐 사람에 따라 일반적이게 보일 수 도 있겠지만요) 계산기나 메모장 같은 많이 알려진 프로그램이라면 이렇게 설명하셔도 되겠지만, 일단 지금 만드실라고 하는 프로그램이 뭔지 모르겠네요. 용도랑 정확하게 어떤 부분에서 어떤 작업이 필요하신건지 스크린샷 등을 정확하게 올려주셔야 답변이 가능합니다.(마음대로 추측해서 답변해도 되겠지만 그게 도움이 안되면 서로 시간만 날리는거니까요)