簡體   English   中英

從Scoreloop服務器檢索分數時未返回任何列表

[英]No list returned while retrieving scores from Scoreloop server

我正在嘗試從Scoreloop服務器檢索設備用戶的分數。 這是一個AndEngine游戲。 我嘗試了以下方法:

observer = new RequestControllerObserver() {
        @Override
        public void requestControllerDidFail(RequestController arg0,
                Exception arg1) {
            // TODO Auto-generated method stub

        }

        @Override
        public void requestControllerDidReceiveResponse(
                RequestController requestController) {
            // TODO Auto-generated method stub
            myScoresController = (ScoresController) requestController;
            myScoresController.setSearchList(SearchList
                    .getGlobalScoreSearchList());
            myScoresController.setMode(mode);
            myScoresController.setRangeLength(20);
            myScoresController.loadRangeForUser(Session.getCurrentSession()
                    .getUser());
            Log.i("score", "" + myScoresController.getScores().get(0).getResult());
            // List<Score> retrievedScores = myScoresController.getScores();
        }

Log.i()甚至沒有出現。 我也試過這個:

observer = new RequestControllerObserver() {

        @Override
        public void requestControllerDidFail(RequestController arg0,
                Exception arg1) {
            // TODO Auto-generated method stub

        }

        @Override
        public void requestControllerDidReceiveResponse(
                RequestController requestController) {
            // TODO Auto-generated method stub
        }
            myScoresController = new ScoresController(observer);
            myScoresController.setSearchList(SearchList
                    .getGlobalScoreSearchList());
            myScoresController.setMode(mode);
            myScoresController.setRangeLength(20);
            myScoresController.loadRangeForUser(Session.getCurrentSession()
                    .getUser());
            Log.i("score", "" + myScoresController.getScores().get(0).getResult());
            // List<Score> retrievedScores = myScoresController.getScores();

我正在嘗試獲取列表的第一個元素,然后獲得比分結果。 但是沒有列表。 錯誤顯示為:

java.lang.IndexOutOfBoundsException
java.util.Collections$EmptyList.get(Collections.java:102)

但是我沒有同時嘗試以上兩種方法。 當然有一個錯誤,但我看不到。

編輯:

我正在使用的整個課程如下:

public class ScoreLoopUpdater implements Runnable {
private double score;
private int mode;
private RequestControllerObserver observer;
private ScoresController myScoresController = null;

public ScoreLoopUpdater(double _score, int _mode) {
    this.score = _score;
    this.mode = _mode;
}

public void run() {
    getGlobalHighscore();
    ScoreloopManagerSingleton.get().onGamePlayEnded(
            score, mode);
}

private void getGlobalHighscore() {
        //the above codes including observer go inside here.
    }

我正在使用此場景進行呼叫:

ScoreLoopUpdater scoreLoopUpdater = new ScoreLoopUpdater(theScore, theMode);
activity.runOnUiThread(scoreLoopUpdater);

在打了一些例子之后,我終於想出了正確的方法:

private void getGlobalHighscore() {
    observer = new RequestControllerObserver() {

        @Override
        public void requestControllerDidFail(RequestController arg0,
                Exception arg1) {
            // TODO Auto-generated method stub

        }

        @Override
        public void requestControllerDidReceiveResponse(
                RequestController requestController) {
            // TODO Auto-generated method stub
            final ScoresController myScoresController = (ScoresController) requestController;
            Log.i("score", "" + myScoresController.getScores().get(0).getResult());
            // List<Score> retrievedScores = myScoresController.getScores();
        }

    };
    ScoresController myScoresController = new ScoresController(observer);
    myScoresController.setSearchList(SearchList
            .getGlobalScoreSearchList());
    myScoresController.setMode(mode);
    myScoresController.setRangeLength(20);
    myScoresController.loadRangeForUser(Session.getCurrentSession()
            .getUser());
}

在requestControllerDidReceiveResponse函數內部只能調用getScores(),這意味着在收到響應后獲取分數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM