【发布时间】:2012-11-27 06:48:00
【问题描述】:
我正在尝试使用AsyncTask 的doInBackground 方法向网络服务器发送消息。然后使用AsyncTask 的onPreExecute() 和onPostExecute(String result) 方法将文本控件从发送数据更改为Fineshed。
问题是在 AsyncTask String 类内部,我无法访问在外部类中声明的任何变量。因此,我无法在这些方法中更改我的 TextView。我明白了,所以mSEnd.setText("Sending data")给了我mSend undefined。
有没有办法使用我在外部类中声明的变量?
public class EndOfWorldActivity extends cBase implements OnClickListener {
TextView textCountDown;
TextView textPercent;
public void onClick(View v) {
Intent i;
switch(v.getId())
{
case R.id.butVote3:
// Start ASync Task
new SendTextOperation().execute("");
break;
case R.id.buGame:
// Start ASync Task
new SendTextOperation().execute("");
break;
}
}
private class SendTextOperation extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
//Update UI here
mSEnd undefined error
mSend.setText("Sending your vote to server");
mSend.invalidate();
}
@Override
protected String doInBackground(String... params) {
// Talk to server here to avoid Ui hanging
// talk to server method undefined
TalkToServer( mYes[mPes-1] );
return null;
}
@Override
protected void onPostExecute(String result) {
// Update screen here after talk to server end
UpdateScreen();
mSend .setText("");
}
}
} // end of class
【问题讨论】:
标签: android