我试图使用doInBackground
方法AsyncTask
向Web服务器发送消息。然后使用AsyncTask
的onPreExecute()
和onPostExecute(String result)
方法将文本控件从发送数据更改为Fineshed。Android:尝试使用AsyncTask与Web服务器通信
问题是,AsyncTask String类内部我无法访问外部类中声明的任何变量。因此我无法在这些方法中更改我的TextView。我得到了,所以mSEnd.setText("Sending data")
给我mSend
未定义。
有没有办法使用我在外部类中声明的变量?
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