我的UI中有一个产品列表及其各自的值。
Product1 --- 10
Product2 --- 12
. . . . . . . . and so on
。 可以单击每一行并打开一个新的自定义对话框界面,用户可以在其中更改值并设置新值。问题是当我更改值并关闭对话框时,值不会在行中更新。我必须打开对话框并再次关闭它然后它会更新。它总是更新"之前的"值。例如,如果我将Product1从10-12更改为然后再次打开对话框并将其更改为13,则会更新为" 12"。我在一个单独的实用程序方法中使用了一个线程。我想将我的Thread实现转换为异步任务,并在onPostExecute的后台使用它。我怎样才能做到这一点?
static void saveMutation(final String productId,
final int mutationAmount,
final boolean isOpeningStock,
final String flightKey,
final FlightLegIdentifier fli,
final String crew, final String tabletId,
final AirFiApplication airFiApplication) {
new Thread(new Runnable() {
@Override
public void run() {
StockMutation mutation = new StockMutation();
mutation.setOpeningStock(isOpeningStock);
mutation.setFlightKey(flightKey);
mutation.setFli(fli);
mutation.setProductId(productId);
mutation.setCrew(crew);
mutation.setMutationId(String.valueOf(UUID.randomUUID()));
mutation.setTabletId(tabletId);
mutation.setMutationAmount(mutationAmount);
StockMutationDao dao = new StockMutationDao(SHARD_DB);
dao.createOrUpdate(mutation);
StockUtils.adjustStock(flightKey, fli, airFiApplication);
StockUtils.setIsStockChanged(true);
}
}).start();
}
答案 0 :(得分:0)
问题是UI只能在UI(主)线程上更新。您可以使用Handler或runOnUIThread()从非UI线程更新UI线程。 你可以在google上找到很多资源。