2012-01-04 30 views
2

我試圖在不同的線程中填充我的應用程序中的微調器。 somoene可以告訴我爲什麼下面的代碼不工作?在不同的線程中填充微調器

下面的代碼是在onCreate()方法

Thread asyn = new Thread(){ 
     public void run(){ 
      try{ 
       int klok = 0; 
       while(klok < 5000){ 
        sleep(100); 
        klok = klok + 100; 
       } 

       try{ 



        String[] items = new String[] {"One", "Two", "Three"}; 
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(Materiaal.this, android.R.layout.simple_spinner_item, items); 
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        spinner1.setAdapter(adapter); 



        }catch(Exception ex){ 
         ex.printStackTrace(); 
        }finally{ 
         //adapter.notifyDataSetChanged(); 

        } 

      }catch(InterruptedException ex){ 
       ex.printStackTrace(); 
      } 

     } 
    }; 

    asyn.start(); 
+0

你有什麼問題?你有什麼錯誤嗎? – kosa 2012-01-04 16:52:39

回答

2

我認爲你應該使用Activity中的runOnUiThread(Runnable r)方法。

也許做這樣的事情

void run() 
{ 
    // do stuff 
    . 
    . 
    . 
    activity.runOnUiThread(new Runnable() 

     void run() 
     { 
      spinner1.setAdapter(adapter); 
     } 

    ); 
} 

我希望它有助於..

1

你一定是從查看錯誤的線程異常感動。
當您想要執行除主線程以外的任何UI操作時,應該使用runOnUi(YOUR_RUNNABLE)。