首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开视频onItemClickListener

打开视频onItemClickListener
EN

Stack Overflow用户
提问于 2013-01-28 08:12:27
回答 1查看 606关注 0票数 1

当用户单击列表中的项目时,我正在尝试打开视频。我有列表视图工作的代码,以及打开视频的代码。我就是想不出怎么把两者结合起来。

这是我打开视频的代码。

代码语言:javascript
复制
    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编写的。但是,我遵循了一个教程,这就是它的用武之地。

代码语言:javascript
复制
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);
};
  });
 }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-28 08:43:50

这就是onclicklistener应该是什么样子。尝试以下代码:

代码语言:javascript
复制
    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。类似于(我没有编译这个):

代码语言:javascript
复制
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()获取所有列表视图集。

代码语言:javascript
复制
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链接:

代码语言:javascript
复制
String url = hm.get(aa.getItem(position));

……

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14553801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档