2015-09-15 2 views
0

Итак, я применил таймер, который вызывает расширение timertask под названием labelTimer. Метод должен изменить метку текста в том, что предусмотрено в коде, но вместо этого вызывает ошибкуИзменение метки на edittext

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

это код

public class labelsTimer extends TimerTask { 
EditText label; 

labelsTimer(EditText label) 
{ super(); 
    this.label = label; 
} 
@Override 
public void run() 
{ 

    System.out.print("fsdfsd"); 
    label.setText("hehehehe"); 
} 

}

ответ

1

Используйте этот

public void run(){ 
    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
     label.setText("hehehehe"); 
     } 
    }); 
} 
+0

Когда я делаю что я получаю красную линию под «runOnUiThread» заставляя My создать Метод runOnUiThread –

+1

Возможно, вам понадобится 'getActivity(). runOnUiThread()' – headuck

+0

try 'getActivity(). runOnUiThread()' –

0

изменить метку в этой обертке нити

try { 
    runOnUiThread(new Runnable() { 

     @Override 
     public void run() { 
      label.setText("hehehehe"); 
     } 
    });   
} catch (InterruptedException e) { 
    e.printStackTrace(); 
} 
+0

То же самое, когда я делаю это, я получаю красную линию под «runOnUiThread» заставляя My создать метод «runOnUiThread» –

Смежные вопросы