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

Java 如何调用具有onCreate参数的方法?,java,android,api,Java,Android,Api,我正在尝试制作一个应用程序,让我能够使用Riot Games API跟踪游戏《传奇联盟》中某个用户的统计数据。我已经创建了一个方法,允许我解析服务器的胜负数量并计算它们之间的比率,但是我需要从onCreate内部调用它,或者从onCreate调用任何其他方法 方法如下: public static void checkStats(String[] args) throws RiotApiException { RiotApi api = new RiotApi("DEVELOPER KE

我正在尝试制作一个应用程序,让我能够使用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(字符串[])不能应用于checkstats():

所以我试着用:

checkstats(null);
但现在,我得到一个未处理的异常:

Unhandled exception: net.rithms.RiotApiException
所有与API相关的导入都已正确完成

作为参考,我遵循以下示例:

谢谢你的帮助


编辑:整个活动代码:

Android Java中的
onCreate
方法不是
static
(与Java程序中的
main
方法相比)

因此,在你的活动中,你不需要进行
int点、赢、输、比、BOtarget、BOwins、BOlosses、BOprogress
文本视图比率视图变量<代码>静态
或。只需将它们定义为活动中的类级别变量

只需像这样定义您的方法,并从
onCreate

public void checkStats() throws RiotApiException {
    ...
当您调用
checkStats()
时,您需要将其包装在一个try-catch中,如下所示:

try {
    checkStats();
} catch (RiotApiException e) {
    // Handle the exception
    Log.e("NewLayoutActivity", e.getMessage());
}

值得一提的是,您下面的示例是Java,而不是Android平台,因此您必须对代码进行一些调整。

您不需要将它们设置为
静态。您需要的是
AsyncTask
在主线程后面进行API调用。我不确定
Riot
是否处理异步。或者不是。您好,我尝试过这样做:但是现在我不知道如何从onCreate调用类。关于从onCreate调用类的代码/帮助有什么想法吗?如果我没有将int和textView设置为静态,那么当我尝试在statc方法中使用它们时,会出现一个错误:不能从静态上下文引用非静态字段“whatever”。另外,如果我删除字符串[]args部分并尝试调用它,我会得到RiotApiException。您的其他哪些方法是静态的?如果您只是从活动中调用这些方法,它们不需要是静态的。现在,这是代码中唯一的静态方法。我试图用public void替换public static void,并将int和textview声明为private,但我得到了相同的例外。你能在你的问题中发布你整个活动的代码吗?我将其添加为一个粘贴库链接,因为我无法在此网站上以代码格式正确显示它。顺便说一下,我正在使用一个带有3个片段的选项卡式活动。
try {
    checkStats();
} catch (RiotApiException e) {
    // Handle the exception
    Log.e("NewLayoutActivity", e.getMessage());
}