Update1
activity:
public Integer _number = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
if (_number >0)
{
Log.d("onSuccessfulExecute", ""+_number);
}
else
{
Log.d("onSuccessfulExecute", "nope empty songs lists");
}
}
public int onSuccessfulExecute(int numberOfSongList) {
_number = numberOfSongList;
if (numberOfSongList >0)
{
Log.d("onSuccessfulExecute", ""+numberOfSongList);
}
else
{
Log.d("onSuccessfulExecute", "nope empty songs lists");
}
return numberOfSongList;
}
更新1结束
更新:AsynchTask有自己的外部类。
如何从AsyncTask的onPostExecute()传递一个值...到activity中
我的代码确实可以从onPostExecute()返回值并在UI上进行更新,但我正在寻找一种设置来自AsynchTask的活动变量(NumberOfSongList
)的方法。
AsyncTask类:
@Override
public void onPostExecute(asynctask.Payload payload)
{
AsyncTemplateActivity app = (AsyncTemplateActivity) payload.data[0];
//the below code DOES UPDATE the UI textView control
int answer = ((Integer) payload.result).intValue();
app.taskStatus.setText("Success: answer = "+answer);
//PROBLEM:
//i am trying to populate the value to an variable but does not seems like the way i am doing:
app.NumberOfSongList = payload.answer;
..............
..............
}
活动:
public Integer NumberOfSongList;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Several UI Code
new ConnectingTask().execute();
Log.d("onCreate", ""+NumberOfSongList);
}
Log.v()
调用中看到NumberOfSongsList
,可能不会发生,因为AsyncTask
没有完成它的工作。那个asynctask.PayLoad
响应到底是什么? - user