最近我尝试使用JSOUP构建自己的Android应用程序。我面临着将新闻标题显示为链接的问题。我的意思是我创建了一个小应用程序,它显示了新闻门户的头条新闻,但它只是文本。是否可以将此文本显示为可点击链接,以便将导航到文章的Web视图页面?
以下是代码摘录:
`public class MainActivity扩展了Activity {
public Elements title;
public ArrayList<String> titleList = new ArrayList<String>();
private ArrayAdapter<String> adapter;
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.listView1);
new NewThread().execute();
adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, titleList);
}
public class NewThread extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... arg) {
Document doc;
try {
doc = Jsoup.connect("http://tech.onliner.by/").get();
title = doc.select(".b-posts-1-item__title");
titleList.clear();
for (Element titles : title) {
titleList.add(titles.text());
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
lv.setAdapter(adapter);
}
}`
提前致谢
答案 0 :(得分:0)
设置OnItemClickListener以处理列表视图中的点击事件,然后创建一个Intent以启动您的webview活动,并将您想要查看的网址作为数据传递。
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String url = ...; //The url
Intent i= new Intent(...); //The activity, flags...
i.setData(Uri.parse(url));
startActivity(i);
}
});
希望这有帮助。
答案 1 :(得分:0)
我同意eltabo的方法,但它需要另一项活动来启动网址
另一种方法是在点击相同活动的列表视图时启动网址,而不将其传递到另一个用于网络视图启动
这项技术可以使用HashMap实现
1)添加标题和链接到HashMap
hashMap.put(title,url);
2)接下来在listview onClickListener中,我们添加代码以启动相应的URL
lv.setOnItemClickListener(new OnItemClickListener() {}
我们可以利用listview项目的位置点击并使用它从HashMap中检索相应的URL
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
value=(new ArrayList<String>(hashMap.values())).get((int)arg3); // based on position clicked retrieve the value ( the url for the title) from hashMap
Uri uri=Uri.parse(value); // here we parse the url
startActivity(new Intent("android.intent.action.VIEW", uri));
}