问题描述
我正在尝试制作一个应用程序,使我可以使用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);
}
赢,输,比率和ratioView都在上面的代码中定义:
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相关的所有导入均已正确完成。
作为参考,我正在关注以下示例: :
谢谢您的帮助。
编辑:整个活动代码: :
1楼
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平台,因此您必须对代码进行一些调整。