我正在尝试将其添加到 onStart 方法中

I'm Trying To add this on A onStart method

我正在尝试将此代码放入 onStart 方法中。我尝试了几种方法,但似乎找不到方法...如果我将它放在 onStart 方法上,错误是:

cannot return value from a method with a void result type

我试过把它改成一个整数,有什么想法吗?

我试过public int onStart...方法,但效果不是很好

注意:我是 Android 的新手,这对你来说似乎是一个显而易见的答案,但不幸的是对我来说不是。

提前致谢!!

public  String getGiphyViews() {
    String id_image = "qi6Yrko";
    String source = "";

    try {
        URL url = new URL("http://imgur.com/" + id_image);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.connect();

        InputStream in = connection.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
        StringBuilder str = new StringBuilder();

        String line;
        while((line = reader.readLine()) != null) {
            if (line.contains("views")) {
                str.append(line);
            }
        }

        in.close();

        source = str.toString();
    } catch (IOException e) {
        e.printStackTrace();
    }

    String views = source.split("<span class=\"views-" + id_image  + "\">")[1].split("<")[0];

    TextView t = (TextView) findViewById(R.id.views);
    assert t != null;
    t.setText(views);

    return views;
}

您不能将 onStart 方法 return 类型从 void 更改为 int。此方法是任何 Android Activity 生命周期的一部分。通过实施此方法,您基本上 override 父方法。当你重写一个方法时,你总是有义务保持相同的 return 类型、方法名称和参数。没有其他办法了。因此,如果您解释为什么您甚至想要 return 任何东西,这会有所帮助吗?我建议,如果您需要 Activity 中的一些值,您将值保存在 Activity 中,然后使用 getter 方法传递该值。

如需进一步说明,请查看 Android documentation

不能在方法内部定义方法。将此代码放在 onStart() 之外,并在 onStart 内调用此方法,如下所示:

String myView;

protected void onStart (){
    myView = getGiphyViews();
}

public  String getGiphyViews() {
...
}