K
K
Kurban Mammaev2015-08-30 23:53:14
Java
Kurban Mammaev, 2015-08-30 23:53:14

Why doesn't the second class work in java application?

I found a block of code that gives the name of the specified web page (jsoup library):

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);

        }

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

The studio writes: class TITLE is never used. As I understand it, it does not work. In jave, I'm not a big connoisseur, maybe it needs to be activated with a command? Searched in Google - to no avail. Perhaps something is misunderstood. Thank you in advance.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
T
Tiberal, 2015-08-31
@Axe98

TITLE тянет с сети код главной страницы википедии. Т.к. это долгая операция она должна быть выполнена в фоновом потоке, чем TITLE собственно и является.
Вам нужно вызвать execute() чтобы запустить TITLE.

TITLE title = new TITLE();
title.execute();

например в конце onCreate

A
Alex Chistyakov, 2015-08-31
@alexclear

Этот класс нигде не инстанцируется, что очень странно.
Это внутренний private class класса AboutActivity, и он не может быть инстанцирован ниоткуда извне. Должен быть создан новый экземпляр (объект) где-то в этом файле.
Код должен быть примерно такой:
Вам стоит связаться с разработчиками этого куска кода и уточнить у них. Здесь какая-то ошибка.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question