问题描述,放在一个button事件内,异步获取的数据能读取出来,如果不放在事件内着获取到的为空,出现空指针异常。
String string;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置Activity显示进度条
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
setHttpTask();
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
txTextView.setText(string);
}
private void setHttpTask() {
httpTaskSos = new HttpTaskSos(mContext,xxx, xxx, callBack);
httpTaskSos.execute();
}
private AsyncTaskCallBack callBack = new AsyncTaskCallBack() {
@Override
public void onTaskCallBack(String obj) {
setObject(obj);
}
};
private void setObject(String obj) {
string = obj;
}
如果我没有用button事件,直接txTextView.setText(string); 就会提示空指针异常。请大家帮帮忙,小弟万分感谢!
------解决方案--------------------
因为异步没走完,还没给String赋值,主线程已经走到txTextView.setText(string);,所以报空。
在button的onclick可以是因为你去点的时候异步已经走完了
------解决方案--------------------
用Handler或者AsyncTask在异步执行结束了再去更新UI