我想创建一个应用程序,它将从网站抓取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
}
答案 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());
}