AsyncTask для получения текстового файла и перевода строк в строки

Как бы вы получили текстовый файл из Интернета, чтобы загрузить и обновить предварительно определенные имена строк, чтобы файлы можно было использовать в TextView, и поэтому приложение не нужно было бы обновлять, когда информация должна быть изменена. Я уже настроил AsyncTask, чтобы файл можно было загрузить в фоновом режиме, но как мне загрузить файл, прочитать, а затем поместить в строки, а затем перезагрузить TextView, чтобы текст можно было обновить. Буду очень признателен за любую помощь или код, и у меня уже есть

Защищенная пустота doInBackground настроена и готова. У меня были проблемы с этим в течение некоторого времени, поэтому любая помощь может быть очень удобной. Я попытался использовать httppost для получения файла, но я не понял, что мне нужно изменить, чтобы это сработало. Спасибо за прочтение!

Речь идет о текстовом файле http://nowactivity.webs.com/teststring.txt.


person ThePoloDoc    schedule 02.07.2013    source источник
comment
Вам нужно будет вставить некоторый код, но имейте в виду, что вам, вероятно, придется использовать jsoup для этого в файле AsyncTask.   -  person g00dy    schedule 02.07.2013
comment
@ g00dy, у тебя есть быстрый способ сделать это? У меня нет знаний о jsoup.   -  person ThePoloDoc    schedule 02.07.2013
comment
У меня есть, но мне придется немного покопаться для этого.   -  person g00dy    schedule 02.07.2013
comment
@ g00dy Большое спасибо.   -  person ThePoloDoc    schedule 02.07.2013


Ответы (1)


Вот более полный ответ:

import java.io.IOException;

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

import android.os.AsyncTask;
import android.util.Log;

...

@Override
protected String doInBackground(String... params) {
    // perform Long time consuming operation
Document doc = null;
String returnValue ="";
String baseWebPage = "http://nowactivity.webs.com/teststring.txt";

for(int i = 0; i< params.length; i++){
  try {
    doc = Jsoup.connect(
        baseWebPage)
        .get();
  } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }

  Log.i("DOC", "The line " + doc.toString());

}

  return returnValue;
}

Я уверен, что вы можете справиться с остальной частью вашей реализации ;-)

Подробнее о jsoup можно узнать здесь.

Ваше здоровье

person g00dy    schedule 02.07.2013
comment
Большое спасибо! Вы были находкой! - person ThePoloDoc; 02.07.2013
comment
Могу я спросить, что вы использовали для своих параметров AsyncTask, прогресса и результата? - person ThePoloDoc; 02.07.2013
comment
Да, я использовал params, чтобы передать последнюю часть URL-адреса AsyncTask и, таким образом, запросить анализ разных страниц на основе этой последней части. Насчет прогресса, если вы конечно имеете в виду onProgressUpdate() - я этим не пользуюсь. И если под результатом вы подразумеваете возвращаемое значение doInBackground, я использую его для возврата последней части адреса веб-страницы или какой-либо другой строки, в зависимости от некоторых операторов if{}else{} и ничего больше. :) - person g00dy; 02.07.2013