[英]How to show titles as links using JSOUP
最近,我试图使用JSOUP构建自己的android应用。 我面临着将新闻标题显示为链接的问题。 我的意思是我确实创建了一个小型应用程序,用于显示新闻门户的标题,但这只是文本。 是否可以将这些文本显示为可单击的链接,以便将其导航到文章的Web视图页面?
以下是代码摘录:
公共类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);
}
}`
提前致谢
设置一个OnItemClickListener来处理列表视图中的单击事件,然后创建一个Intent以启动您的Webview活动,并将您想要查看的url作为数据传递。
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);
}
});
希望这可以帮助。
我同意eltabo的方法,但是它还需要另一个活动来启动url
一种不同的方法是在单击同一活动中的listview时启动url,而不将其传递给另一个进行webview启动的URL
可以使用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));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.