我正在尝试制作一个应用程序,让我可以使用Riot Games API跟踪游戏英雄联盟中某个用户的统计信息。我已经制定了一个方法,允许我解析服务器的输赢数量,并计算它们之间的比例,但是我需要从内部onCreate调用它,或者我可以使用任何其他方法调用它。来自onCreate的电话。
以下是方法:
public static void checkStats(String[] args) throws RiotApiException {
RiotApi api = new RiotApi("DEVELOPER KEY REDACTED");
Summoner summoner = api.getSummonerById(Region.EUW, "ID REDACTED");
RankedStats statsRanked = api.getRankedStats(Region.EUW, summoner.getId());
AggregatedStats rankedStats = statsRanked.getChampions().get(0).getStats();
wins = rankedStats.getTotalSessionsWon();
losses = rankedStats.getTotalSessionsLost();
ratio = wins / losses;
ratioView.setText(wins + " / " + losses + " | " + "Ratio : " + ratio);
}
胜利,损失,比率和比率视图都在上面的代码中定义:
static int points, wins, losses, ratio, BOtarget, BOwins, BOlosses, BOprogress;
static TextView ratioView;
我试图通过使用此行调用此方法,但它表示checkstats(String [])无法应用于checkstats():
checkStats();
所以我尝试使用:
checkstats(null);
但现在,我得到一个未处理的例外:
Unhandled exception: net.rithms.RiotApiException
与API相关的所有导入都已正确完成。
作为参考,我遵循以下示例:https://github.com/taycaldwell/riot-api-java/blob/master/examples/RankedWinsAndLosses.java
感谢您的帮助。
编辑:整个活动代码:http://pastebin.com/2f65WTWN
答案 0 :(得分:0)
Android Java中的onCreate
方法不是static
(与Java程序中的main
方法相比)。
因此,在您的活动中,您也不需要制作int points, wins, losses, ratio, BOtarget, BOwins, BOlosses, BOprogress;
或TextView ratioView;
变量static
。只需在Activity中将它们定义为类级变量即可。
只需像这样定义您的方法,然后从onCreate
public void checkStats() throws RiotApiException {
...
当您致电checkStats()
时,您需要将其包装在这样的try catch中:
try {
checkStats();
} catch (RiotApiException e) {
// Handle the exception
Log.e("NewLayoutActivity", e.getMessage());
}
对于它的价值,您所遵循的示例仅在Java中,而不是在Android平台上,因此您必须对代码进行一些调整。