2012-01-04 26 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)。