В моем приложении я использовал Socket.io , и я хочу, чтобы при получении прослушивателя из сокета мне нужно обновить пользовательский интерфейс .
Я пишу ниже коды,но не обновлять мой пользовательский интерфейс !
Для проверки этого я пишу Log.e
при получении слушателя сокета, покажите это Log
, но не обновите пользовательский интерфейс !
Мои коды:
@Override
public void onSocketUpdateBid(final JSONObject ob) {
Log.e("updateBidCount", "Receive");
super.onSocketUpdateBid(ob);
final int auction_id;
final String remainClick;
final JSONObject data = ob;
try {
UpdateBidResponse updateBidResponse = new Gson().fromJson(data.toString(), UpdateBidResponse.class);
auction_id = updateBidResponse.getAuction_id();
remainClick = updateBidResponse.getRemain_click();
Constants.currentActivity.runOnUiThread(() -> {
if (detail.getId() != null) {
Log.e("RemainClickLog", "" + remainClick);
if (detail.getId().equals(auction_id)) {
if (Integer.parseInt(remainClick) > 0) {
Log.e("updateBidLog", "RemainClick : " + remainClick);
auctionDetail_miniBottomBidTxt.setText(remainClick);
auctionDetail_footerPlusBidBtn.setAlpha(1.0f);
auctionDetail_footerPlusBidBtn.setEnabled(true);
auctionDetail_footerPlusBidBtn.setClickable(true);
Log.e("updateBidLog", "Enable");
auctionDetail_footerBottom.setEnabled(true);
auctionDetail_footerBottom.setClickable(true);
auctionDetail_footerBottom.setAlpha(1.0f);
isShowSendBid = true;
} else if (Integer.parseInt(remainClick) == 0) {
Log.e("updateBidLog", "Disable");
auctionDetail_footerBottom.setEnabled(false);
auctionDetail_footerBottom.setClickable(false);
auctionDetail_footerBottom.setAlpha(0.4f);
auctionDetail_miniBottomBidTxt.setText("0");
isNotEndBids = true;
isShowSendBid = false;
} else {
Log.e("updateBidLog", "Disable");
auctionDetail_footerBottom.setEnabled(false);
auctionDetail_footerBottom.setClickable(false);
auctionDetail_footerBottom.setAlpha(0.4f);
auctionDetail_miniBottomBidTxt.setText("0");
isNotEndBids = true;
isShowSendBid = false;
}
}
}
});
} catch (Exception e) {
Log.e("updateBidCount", "Err : " + e.getMessage());
}
}
При запуске приложения и прослушивателя получателей сокетов я показываю Log.e("updateBidLog", "Disable");
на вкладку logcat .
Но не запускаетсяэтот код:
auctionDetail_footerBottom.setEnabled(false);
auctionDetail_footerBottom.setClickable(false);
auctionDetail_footerBottom.setAlpha(0.4f);
auctionDetail_miniBottomBidTxt.setText("0");
isNotEndBids = true;
isShowSendBid = false;
и не обновлять пользовательский интерфейс!
Обновление: Я использовал это Constants.currentActivity.runOnUiThread
для обновления пользовательского интерфейса.но не обновлять пользовательский интерфейс!
Как я могу это исправить?