如何调用具有onCreate参数的方法?

时间:2017-02-15 16:00:33

标签: java android api

我正在尝试制作一个应用程序,让我可以使用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

1 个答案:

答案 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平台上,因此您必须对代码进行一些调整。