I am tring to setText in another thread, that is, child thread. But for the following code, it is giving the error
Only the original thread that created a view hierarchy can touch its views.
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); img = (ImageView)findViewById(R.id.img); pb = (ProgressBar)findViewById(R.id.pb); this.tv = (TextView)findViewById(R.id.perc); tv.setText("30 %"); pb.setProgress(30); pb.setMax(100); } public void set(int p) { tv.setText(p + " %"); } protected void onStart() { super.onStart(); pb.setProgress(20); Thread t = new Thread(new Runnable() { @Override public void run() { try { int i = pb.getProgress(); while(i <100) { while(pb.getProgress()<100) { pb.incrementProgressBy(5); Thread.sleep(1000); } i+=10; pb.setProgress(i); Thread.interrupted(); set(i); } } catch (InterruptedException e) { e.printStackTrace(); } } }); t.start(); }