我正在获取一个JSON数据,其中包含新闻标题和实际网站中新闻的网址。
我正在使用ListView来显示标题。但是我该如何制作它以便在点击每个项目时它将打开Android浏览器中的相应链接。以下是我的代码段:
String title = c.getString(TAG_TITLE);
String link = c.getString(TAG_ALTERNATE);
list.add(title);
final StableArrayAdapter adapter = new StableArrayAdapter(this,
android.R.layout.simple_list_item_1, list);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(link));
startActivity(browserIntent);
}
});
问题是当我点击该项目时,它只从1个链接加载页面。点击后的所有项目都会转到同一页面。
知道我哪里出错了吗?如何以这样一种方式制作它,使点击后的每个项目都会转到它的相应链接?
提前致谢
答案 0 :(得分:2)
在解析json时将相应的链接放在列表中。
List<String> listLink= new ArrayList<String>
listLink.add(link);
在OnItemClickListner
ListView
中创建意图时设置标题的交叉链接。即。
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(listLink.get(arg2)));
startActivity(browserIntent);
}
});
答案 1 :(得分:2)
我认为你应该制作标题并链接到javabean,所以当你点击一个项目时,你可以使用javabean并获取链接,最后,你将链接到不同的网站。
答案 2 :(得分:1)
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(),s[arg2], Toast.LENGTH_LONG).show();
if(s[arg2].equals("Facebook"))
{
startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.facebook.com")));
}
else if(s[arg2].equals("Twitter"))
{
startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.twitter.com")));
}
else
{
//Message here
}
}
});
答案 3 :(得分:1)
可能是
Intent browserIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse(adapter.getItem(arg2).toString());
startActivity(browserIntent);
或类似的东西。
但是,为了理解:
你得到1个链接,因为在2个案例中你得到1个值。这很简单。享受!)
答案 4 :(得分:0)
好的,明白了。我宣布了另一个列表并从该列表中获取链接。以下是代码:
list.add(title);
linklist.add(link);
final StableArrayAdapter adapter = new StableArrayAdapter(this,android.R.layout.simple_list_item_1, list);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(linklist.get(arg2).toString()));
startActivity(browserIntent);
}
});