2013-04-08 94 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