今天做新浪分享,调用接口拿到用户头像,用户名时,直接setText()总出错。原来如此:
改变TextView中的内容
改变TextView中的内容可以通过Handler。Handler是Android中的消息发送器,其在哪个Activity中创建就属于且紧紧属于该Activity。还可以说其在哪个线程中new的,就是那个线程的Handler。
如果想改变TextView中的内容,就要通过Handler来实现,比如想每秒钟更新一下时间,那么如下:
<!--[if !supportLists]-->(1)
<!--[if !supportLists]-->(2)
<!--[if !supportLists]-->(3)
<!--[if !supportLists]-->(4)
代码
- 1
package rznh.zcl; - 2
import android.app.Activity; - 3
import android.os.Bundle; - 4
import android.os.Handler; - 5
import android.view.View; - 6
import android.widget.Button; - 7
import android.widget.TextView; - 8
public class MyActivity extends Activity { - 9
- 10
private Button butStart; - 11
private Button butStop; - 12
TextView tv; - 13
int i=0; - 14
Handler handler=new Handler(); - 15
@Override - 16
public void onCreate(Bundle savedInstanceState) { - 17
super.onCreate(savedInstanceState); - 18
setContentView(R.layout.main); - 19
- 22
//all by zcl qq158067568 - 23
butStart=(Button)findViewById(R.id.Button01); - 24
butStop=(Button)findViewById(R.id.Button02); - 25
tv=(TextView)findViewById(R.id.TextView01); - 26
butStart.setOnClickListener(new View.OnClickListener() { - 27
@Override - 28
public void onClick(View v) { - 29
handler.post(runnable); - 30
} - 31
}); - 32
butStop.setOnClickListener(new View.OnClickListener() { - 33
@Override - 34
public void onClick(View v) { - 35
handler.removeCallbacks(runnable); - 36
} - 37
}); - 38
} - 39
Runnable runnable=new Runnable(){ - 40
- 41
@Override - 42
public void run() { - 43
tv.setText(String.valueOf(i++)); - 44
handler.postDelayed(runnable, 1000); - 45
} - 46
}; - 47
}