在設計APP時,MIKE需要改變UI元件,但在測試的時候,APP一直出現錯誤

 

而錯誤的訊息如下所示。

 

timer android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

 

就是說我使用下列這個方法

public class MyTimerTask extends TimerTask
{
public void run()
{
     //執行的程式碼
}
};

這種方法,並不能直接在裡面呼叫更改UI元件。

 

而解決的辦法也非常簡單,上網查有些人有很多方法,不過都過於複雜,我認為這方法最簡單了解。

就是在 public void run()裡面加入下列程式碼

runOnUiThread(new Runnable() {
public void run() {
//更改UI元件程式碼加在這
}
});

這樣就能成功了,而
public class MyTimerTask extends TimerTask
程式碼大概如下
public class MyTimerTask extends TimerTask
{
public void run()
{

runOnUiThread(new Runnable() {
public void run() {
        //更改UI元件程式碼加在這

}

}
});



}
};
 

希望這方法能幫助到你




android studio ,手機APP,手機APP教學,手機APP開發,java ,

怪獸 發表在 痞客邦 留言(0) 人氣()