Как исправить не обновлять пользовательский интерфейс в сокете на Android - PullRequest
0 голосов
/ 24 июня 2019

В моем приложении я использовал 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 для обновления пользовательского интерфейса.но не обновлять пользовательский интерфейс!

Как я могу это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...