我有一個數組代表迷宮。在UI上,迷宮被表示爲按鈕的行和列。在異步任務的doInBackground方法中,我搜索了一個路徑並用導致目標的路徑初始化一個解決方案數組。我想要做的是更新這些按鈕的按鈕文本,以顯示通向目標的路徑。我在OnPostExecute中這樣做。但是,它不起作用。它甚至不執行啓用解決方案按鈕的最後一行。我在哪裏做什麼?從OnPostExecute更新UI(異步)
private void updateUI() {
Button cell;
TableRow row;
do {
row = (TableRow) (State.maze.getChildAt(solution.row));
cell = (Button) (row.getChildAt(solution.col));
cell.setText(State.pathCell);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
solution = solution.next;
} while (solution.next != null);
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
updateUI();
//Enable solution button
State.solveResetButton.setEnabled(true);
}
更新: 我檢查,以確保解決方案變量包含一個解決方案,它包含有效data.I還試圖消除睡眠,但無濟於事。
UPDATE: logcat的輸出(在紅色的)
02-23 13:09:15.471 4640-4640/? E/Zygote: MountEmulatedStorage()
02-23 13:09:15.471 4640-4640/? E/Zygote: v2
02-23 13:09:15.471 4640-4640/? E/Zygote: accessInfo : 0
02-23 13:09:15.471 4640-4640/? E/SELinux: [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL
是否有您的logcat的任何異常做到這一點? – Lal
一個簡單的解決方案將可用,如果你可以調試它.. – Lal
你可以發佈你的所有代碼,你是否在串行Executor上運行AsyncTask? –