Я пытаюсь добавить это на метод OnStart

Я пытаюсь поместить этот код в onStart метод. Я попробовал несколько вещей, но не могу найти способ... если я положу его на onStart Метод ошибки:

не может вернуть значение из метода с пустым типом результата

Я пытался изменить его на 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;
}

2 ответа

Решение

Вы не можете изменить onStart метод, возвращающий тип из void в int. Этот метод является частью жизненного цикла любого Android Activity, Реализуя этот метод, вы в основном override родительский метод. И когда вы переопределяете метод, вы всегда обязаны сохранять один и тот же тип возвращаемого значения, имя метода и аргументы. Обойти это невозможно. Так что было бы полезно, если бы вы объяснили, почему вы хотите, чтобы это возвращало что-нибудь? Я бы посоветовал, если вам нужна какая-то ценность из Activity, что вы сохраняете значение внутри Activity а затем передать значение с помощью метода получения.

Для дальнейшего объяснения, пожалуйста, проверьте документацию по Android.

Вы не можете определить метод внутри метода. Поместите этот код вне onStart() и вызовите этот метод внутри onStart следующим образом:

String myView;

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

public  String getGiphyViews() {
...
}
Другие вопросы по тегам