当用户单击列表中的项目时,我正在尝试打开视频。我有列表视图工作的代码,以及打开视频的代码。我就是想不出怎么把两者结合起来。
这是我打开视频的代码。
String video_path = "http://www.youtube.com/watch?v=qrEUBl2pacU";
Uri uri = Uri.parse(video_path);
uri = Uri.parse("vnd.youtube: " + uri.getQueryParameter("v"));
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);可以将这段代码放到onItemClick中吗?
编辑:这是整个类。我有一种感觉,我的代码不正确,因为它都是用onCreate编写的。但是,我遵循了一个教程,这就是它的用武之地。
public class Videos extends Activity{
private ListView lv;
String videoNames[] = {"Doctor Who Trailer", "T+S - Northshore", "Foo Fighters - Everlong"};
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.videos);
lv = (ListView) findViewById(R.id.videosListView);
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, videoNames));
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?>Videos, View v, int position, long id) {
String video_path = "http://www.youtube.com/watch?v=qrEUBl2pacU";
Uri uri = Uri.parse(video_path);
uri = Uri.parse("vnd.youtube: " + uri.getQueryParameter("v"));
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
};
});
}
}发布于 2013-01-28 08:43:50
这就是onclicklistener应该是什么样子。尝试以下代码:
final ArrayAdapter<String> aa = new ArrayAdapter<String>(this,R.layout.list_view,listItems);
setListAdapter(aa);
//This creates a listener for the Files listed
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String url = aa.getItem(position);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
return false;
}
}); 更新:我建议对键值对使用Hashmap。类似于(我没有编译这个):
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("videoText1", "youtube_link1");
hm.put("videoText2", "youtube_link2");
hm.put("videoText3", "youtube_link3");然后,您可以使用hm.keySet()获取所有列表视图集。
ArrayList<String> listItems = new ArrayList<String>(hm.keySet());
final ArrayAdapter<String> aa = new ArrayAdapter<String>(this,R.layout.list_view,listItems);
setListAdapter(aa);最后,使用Hashmap查找youtube链接:
String url = hm.get(aa.getItem(position));……
https://stackoverflow.com/questions/14553801
复制相似问题