2017-12-02 25 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); 
    } 
}) 

これをクリックリスナーから取り出して1回実行することができます。

アクティビティが一時停止しているときにはtimer.cancel()に電話するのを忘れずに再開します()。

関連する問題