@Axe98
Junior Programmer

Почему не работает второй класс в java приложении?

Нашел блок кода, который выдает название указанной вэб страницы(библиотека jsoup):
package com.uzconv.uzflsoft.uzconv;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.text.method.ScrollingMovementMethod;
import android.widget.TextView;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import java.io.IOException;


public class AboutActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        TextView tv = (TextView) findViewById(R.id.testtextview);
        tv.setMovementMethod(new ScrollingMovementMethod());

    }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
    private class TITLE extends AsyncTask<Void, Void, Void> {
        String title;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

        }

        @Override
        protected Void doInBackground(Void... params) {
            try {
                // Connect to the web site
                Document document = Jsoup.connect("http://wikipedia.org").get();
                // Get the html document title
                title = document.title();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // Set title into TextView
            TextView tv = (TextView) findViewById(R.id.testtextview);
            tv.setText(title);

        }

    }
////////////////////////////////////////////////////////////////////////////////////
}

Студия пишет: class TITLE is never used. Как я понял он не выполняется. В jave я не большой знаток, может его нужно активировать командой? Искал в гугле - безрезультатно. Возможно что-то не так понял. Заранее спасибо за помощь.
  • Вопрос задан
  • 1732 просмотра
Решения вопроса 1
@Tiberal
TITLE тянет с сети код главной страницы википедии. Т.к. это долгая операция она должна быть выполнена в фоновом потоке, чем TITLE собственно и является.
Вам нужно вызвать execute() чтобы запустить TITLE.
TITLE title = new TITLE();
title.execute();

например в конце onCreate
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alexclear
@alexclear
A cat
Этот класс нигде не инстанцируется, что очень странно.
Это внутренний private class класса AboutActivity, и он не может быть инстанцирован ниоткуда извне. Должен быть создан новый экземпляр (объект) где-то в этом файле.
Код должен быть примерно такой:
TITLE title = new TITLE();
Вам стоит связаться с разработчиками этого куска кода и уточнить у них. Здесь какая-то ошибка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы