Android - 显示在异步任务中检索的字符串

时间:2012-01-29 17:14:02

标签: android string dynamic android-asynctask

我想创建一个应用程序,它将从网站抓取HTML并在线性布局中显示应用程序内部的某些字符串。 (我不想使用webView)。我正在检索的数据每天都在变化;但格式通常是一样的;只有页面上的项目数量不同。

我能够使用jSoup(在异步任务中)来检索和解析我需要的字符串。我也可以在toast消息中弹出字符串;所以我可以确认我得到了我想要的字符串。

我的问题是如何在应用中实际显示字符串?

我想要显示两个不同的项目。一个名称,然后是它下面的描述。

实施例:

(姓名)FRENCH FRIED SHRIMP

(描述)用日式面包屑轻轻裹上十二只虾,油炸至金黄色。配鸡尾酒酱只需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>

要添加,最初我有一个视图;但在我执行异步任务后;我想换个新视图。那将显示String。

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

1 个答案:

答案 0 :(得分:0)

在您的应用中初始化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());
    }