2017-12-02 1 views
-1
mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       data =""; 

        String splithis; 
       splithis=mySpinner.getSelectedItem().toString(); 
       splited = splithis.split(" "); 
       course = splited[0]; 
       sections = splited[2]; 
       new Thread(new Runnable() { 
        public void run() { 

         data = bw.getAttendanceFromDB(term, course,sections,day); 
         runOnUiThread(new Runnable() { 

          @Override 
          public void run() { 

           ArrayList<Properties> attendanceusers = attendanceUse(data); 
           addAttendance(attendanceusers);      
          } 
         }); 
        } 
       }).start(); 
      } 

내 동적 디자인을 채우는 ArrayList 참석자가 있는데, 데이터베이스에 학생의 출석을 얻고 내 디자인을 동적으로 채 웁니다. 그러나 다른 학생들이 들어올 때마다 변화를 동적으로 반영하지 않습니다. 메신저가 다른 날짜를 클릭하면 새로 고침이 수행되지만 원하는 것은 5 초 또는 10 초마다 새로 고치는 것입니다. 메신저 스택에서 여기에 답변을 연구하려고하지만 모든 대답은 내 것과 다릅니다.5 초마다 스레드 내부에있는 runOnUiThread를 새로 고치는 방법은 무엇입니까?

+0

복제 제안에 runOnUiThread (new Runnable()이 없음) – picolo

+0

내가 찾고있는 것은 runOnUiThread의 새로 고침입니다. – picolo

+0

이 Android 또는 다른 것입니까? Eclipse는 모든 종류의 Java를 개발하는 데 사용됩니다. 우리는 정확히 어떤 프레임 워크/GUI를 사용하고 있습니까? –

답변

0

다음은 스레드에서 5 초마다 실행하는 방법의 예입니다. 원하는 위치에 추가 할 수 있습니다.

Handler handler = new Handler(Looper.getMainLooper()); 

Timer timer = new Timer(); 
timer.scheduleAtFixedRate(new TimerTask() { 
    public void run() { 
     data = bw.getAttendanceFromDB(term, course,sections,day); 
    } 
}, 0, 5 * 1000); 

handler.post(new Runnable() { 
    public void run() { 
     ArrayList<Properties> attendanceusers = attendanceUse(data); 
     addAttendance(attendanceusers); 
    } 
}) 

클릭 청취자가 아닌데이를 한 번 실행 시켜도됩니다.

활동이 일시 중지 된 경우 timer.cancel()에 전화 한 다음 다시 시작하면 다시 실행하는 것을 잊지 마십시오().