我正在尝试使用String[] placesSuggestion;
onPostExecute
设置全局定义的AsyncTask<String, String, String[]>
onPostExecute
方法如下所示:
@Override
protected void onPostExecute(String[] suggestionArray){
//Log.d("suggestionArray", Arrays.toString(suggestionArray));
super.onPostExecute(suggestionArray);
fillPlacesSuggestion(suggestionArray);
Log.d("suggestionArray", Arrays.toString(suggestionArray));
}
fillPlacesSuggestion
函数如下所示:
public void fillPlacesSuggestion(String[] suggestionArray){
placesSuggestion = suggestionArray;
}
onCreate
方法如下所示:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sourceET = (EditText) findViewById(R.id.sourceEditText);
destinationET = (EditText) findViewById(R.id.destinationEditText);
new MyAsyncTask().execute();
Log.d("placesSuggestion", Arrays.toString(placesSuggestion));
suggestionArray
日志给出了预期值,但placeSuggestion
日志不是。
任何人都可以帮我解决这个问题,因为我对Android开发很陌生。
答案 0 :(得分:1)
当您尝试记录此内容时:
Log.d("placesSuggestion", Arrays.toString(placesSuggestion));
任务尚未完成。如果你想为placesSuggestion
获得正确的值,请等待它MyAsyncTask task = new MyAsyncTask();
task.execute();
if (task.get() != null) // waiting for it
{
Log.d("placesSuggestion", Arrays.toString(placesSuggestion));
}