Android - отображение строки, полученной в асинхронной задаче - PullRequest
0 голосов
/ 29 января 2012

Я хочу создать приложение, которое будет извлекать HTML-код с веб-сайта и отображать определенные строки внутри приложения в линейном формате.(Я не хочу использовать webView).Данные, которые я получаю, меняются каждый день;однако формат, как правило, одинаков;отличается только количеством предметов на странице.

Я могу использовать jSoup (в асинхронной задаче) для получения и анализа нужных мне строк.Я также могу сделать строку всплывающей в тост-сообщении;так что я могу подтвердить, что получаю строку, которую я хочу.

Мой вопрос: как я могу отображать строки в приложении?

Есть два разных элемента, которые я хочу отобразить.Имя, а затем описание под ним.

Пример:

(Имя) ФРИЧЕСКАЯ ЖАРЕНАЯ КУРИЦА

(Описание) Двенадцать креветок, слегка панированные в сухарях по-японски, и глубокиежареная до золотисто-коричневого.Подается ТОЛЬКО с коктейльным соусом $ 12,49

Ниже приведен код, на котором в данный момент отображается нужная мне строка.

 protected void onPostExecute(Document doc) {
        Toast.makeText(RoundtheClockActivity.this, doc.select("p").get(0).toString(), Toast.LENGTH_SHORT).show();
}

Сейчас я хочу изменить представление на другоестраница .. И я предполагаю, что String1 - это то, что я хочу отобразить ... Код ниже:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >


<TextView
    android:id="@+id/soupSpecial1"
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="0.01"
    android:text="@string/string1" />

    </LinearLayout>

Чтобы добавить, первоначально у меня есть одно представление;но после того, как я выполню асинхронную задачу;Я хочу перейти на новый взгляд.Это будет отображать строку.

  public void onClick(View v) {
            try {
                  new DownloadTask().execute("url");
            } catch (Exception e) {
                //logic for exception here
            }

1 Ответ

0 голосов
/ 29 января 2012

инициализируйте ваш TextView в вашем приложении, как показано ниже:

TextView txtSoup;


   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.yourDesiredLayout);
       ...
       ...
       ...

       txtSoup = (TextView) findViewById(R.id.soupSpecial);
   }

и в onPostExecute вашей асинхронной задачи выполните следующие действия:

protected void onPostExecute(Document doc) {
 setContentView(R.layout.yourNewLayout);
       txtSoup.setText(doc.select("p").get(0).toString());
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...