当前位置: 代码迷 >> Android >> 如何调用具有onCreate参数的方法?
  详细解决方案

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

热度:38   发布时间:2023-08-04 11:46:17.0

我正在尝试制作一个应用程序,使我可以使用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相关的所有导入均已正确完成。

作为参考,我正在关注以下示例: :

谢谢您的帮助。

编辑:整个活动代码: :

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