2013-04-08 91 views
0

我正在嘗試爲我的應用的最新版本實現在線排行榜。我跟着在這裏找到教程:SwarmConnect顯示排行榜

http://swarmconnect.com/admin/docs/leaderboard

下面是從MainMenu.java相關代碼。

public void onCreate(Bundle savedInstanceState) { 

    // if user has logged in before, automatically login user without showing the home screen 
    if(Swarm.isEnabled()) { 
     autoLogin(); 
    } else { 
     login(); 
    } 

    if(Swarm.isEnabled() == false) { 
     autoLogin(); 
    } 

} 

public void autoLogin() { 
    Swarm.init(MainMenu.this, ...., "..."); 
} 

public void login() { 

      Swarm.init(MainMenu.this, ..., "..."); 
     } 
} 

Results.java在測驗結束後顯示。這裏是有相關代碼:

public void submitScore(long score) { 
    SwarmLeaderboard.submitScore(LEADERBOARD_ID, score); 
} 

下面是相關的代碼Highscores.java

public void showLeaderboard() { 
    SwarmLeaderboard.showLeaderboard(LEADERBOARD_ID); 
} 

這就是我所有的代碼,這是所有是SwarmConnect網站上。我能夠成功登錄MainMenu,並且該應用永不崩潰。但是當我去Highscores.java什麼都不顯示。必須有更多的代碼,但我沒有看到任何地方的任何文檔可以通過頂部鏈接中的指令進行指示。

我的問題是如何顯示從Results.java頁面提交的分數。

+0

當我有機會測試它時,我會。 :)現在工作。 – Matt 2013-04-09 14:29:19

回答

1

好的,我有SwarmConnect上的simple game I made

下面是我用來顯示LeaderBoards的代碼:Swarm.showLeaderboards();它是Swarm而不是SwarmLeaderboard

0

請確定您已遵循Swarm安裝文檔(http://swarmconnect.com/admin/docs/setup)。特別是擴展SwarmActivity的部分(或者調用setActive()和setInactive())。我的猜測是,Swarm沒有一個活動的上下文來處理,因此不會顯示新的屏幕。

+0

至於鏈接,我已經完成了所有5個步驟,並在發佈我的開場白之前完成了我的所有代碼。 至於關於上下文的評論部分,可能就是這樣。如果你看看我上面的代碼,則無法使用Context變量。但是,原因是因爲如果我沒有記錯的話,SwarmConnect文檔沒有在那裏。 我應該補充說,登錄屏幕確實出現在我的MainMenu上,我能夠成功登錄。這只是從未出現的排行榜。 – Matt 2013-04-09 02:12:04

+1

Swarm處理上下文的方式是,如果它接管了屏幕(例如登錄屏幕),它將自己設置爲活動(Swarm.setActive())。當它放棄它的屏幕所有權時(回到你的遊戲),它會調用setInactive()與它的活動,並期望你用你的活動(當你得到你的onResume()時)調用setActive(),以便Swarm知道您的應用程序仍處於活動狀態,並未完全退出。 如果你嘗試調用showLeaderboard()或其他東西,並錯過了setActive(),Swarm會認爲你的應用程序在後臺,並且試圖避免接管屏幕。 – impact 2013-04-09 22:10:25