我正在尝试设置全局定义的 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
log 给出了预期值,但是 placeSuggestion
日志不是。
谁能帮我解决这个问题,因为我对 Android 开发非常陌生。
最佳答案
当您尝试记录此内容时:
Log.d("placesSuggestion", Arrays.toString(placesSuggestion));
任务尚未完成。如果您想获得正确的地方建议值,请等待
MyAsyncTask task = new MyAsyncTask();
task.execute();
if (task.get() != null) // waiting for it
{
Log.d("placesSuggestion", Arrays.toString(placesSuggestion));
}
关于java - 使用 onPostExecute 设置全局数组值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26308665/