1

ユーザーがリストからアイテムをクリックしたときにビデオを開こうとしています。リストビューのコードと、ビデオを開くためのコードがあります。2つを組み合わせる方法がわかりません。

これがビデオを開くための私のコードです。

    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);
};
  });
 }
}
4

1 に答える 1

2

これは、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<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);

最後に、ハッシュマップを使用してYouTubeリンクを検索します。

String url = hm.get(aa.getItem(position));

...。

于 2013-01-28T00:43:50.413 に答える