0

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

无法从具有 void 结果类型的方法返回值

我确实尝试将其更改为 int,有什么想法吗?

我尝试做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;
}
4

2 回答 2

1

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

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

于 2016-03-31T21:25:26.323 回答
0

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

String myView;

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

public  String getGiphyViews() {
...
}
于 2016-03-31T21:34:20.110 回答