2016-09-09 14 views
1

私はビデオビューとリストビュー/グリッドビューを私のplayvideoで持っています。 ビデオビューで既に1つのビデオが再生されています。しかし今、私はlistview/gridviewに表示されている他のビデオを再生したいのですが、どうすればいいですか?同じアクティビティのリストビューからビデオビューへのビデオリンクの送信

enter image description here

Playvideo活動

public class playvideoactivity extends Activity { 

    GridViewWithHeaderAndFooter grid; 
    String videourl="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4"; 

    private static final String url = "http://dakwf.org/api/bd_english.json"; 

    private List<ChannelItem> chanellist = new ArrayList<ChannelItem>(); 
    private static final String TAG = MainActivity.class.getSimpleName(); 

    public static VideoView player; 
    public static ImageButton btnPlayPause; 
    private ImageView btnFullscreen; 
    private ProgressBar spinner; 
    private RelativeLayout mediaController; 
    private Handler btnHandler = new Handler(); 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     spinner = (ProgressBar) findViewById(R.id.progressBar); 
     player=(VideoView) findViewById(R.id.player); 
     mediaController=(RelativeLayout) findViewById(R.id.media_controller); 
     spinner.setVisibility(View.VISIBLE); 
     mediaController.setVisibility(View.INVISIBLE); 
     btnPlayPause=(ImageButton) findViewById(R.id.btn_playpause); 
     btnFullscreen=(ImageView) findViewById(R.id.btn_fullscreen); 

     final CustomGridviewadapter customGridview= new CustomGridviewadapter(this,chanellist); 

     grid = (GridViewWithHeaderAndFooter) findViewById(R.id.grid_view); 
     setGridViewHeaderAndFooter(); 
     grid.setAdapter(customGridview); 

     //----------- Creating volley request obj-------------------- 
     JsonArrayRequest movieReq = new JsonArrayRequest(url,new Response.Listener<JSONArray>() { 
      @Override 
      public void onResponse(JSONArray response) { 
       Log.d(TAG, response.toString()); 


       // Parsing json 
       for (int i = 0; i < response.length(); i++) { 
        try { 

         JSONObject obj = response.getJSONObject(i); 
         ChannelItem item = new ChannelItem(); 
         item.setTitle(obj.getString("title")); 
         item.setThumbnailUrl(obj.getString("image")); 



         // adding movie to movies array 
         chanellist.add(item); 

        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 

       } 

       // notifying list adapter about data changes 
       // so that it renders the list view with updated data 
       customGridview.notifyDataSetChanged(); 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 


      } 
     }); 

     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(movieReq); 



     //------------------- Mediacontroller Visiblity------------------------------------- 

     player.setOnTouchListener(new View.OnTouchListener() 
     { 
      public boolean onTouch(final View paramAnonymousView, MotionEvent paramAnonymousMotionEvent) 
      { 
       if (paramAnonymousMotionEvent.getAction() == 0){ 

        if (MainActivity.this.mediaController.getVisibility() != View.INVISIBLE) { 

        } 

        MainActivity.this.mediaController.setVisibility(View.VISIBLE); 

        MainActivity.this.btnHandler.postDelayed(new Runnable(){ 
         public void run(){ 


          MainActivity.this.mediaController.setVisibility(View.INVISIBLE); 
         } 
        }, 2000L); 
       } 
       for (;;){ 
        return true; 

       } 
      } 
     }); 


     //------FullScreen Button ----- 

     btnFullscreen.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View paramAnonymousView) { 
       Intent i = new Intent(MainActivity.this, FullScreenView.class); 
       startActivity(i); 
      } 
     }); 

     //------Play Pause Button ---------- 

     btnPlayPause.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View paramAnonymousView){ 

       if ((player != null) && (MainActivity.this.player.isPlaying())){ 
        MainActivity.this.player.pause(); 
        MainActivity.this.btnPlayPause.setBackgroundResource(R.drawable.btn_play); 

        return; 
       } 
       MainActivity.this.player.start(); 
       MainActivity.this.btnPlayPause.setBackgroundResource(R.drawable.btn_pause); 



       return; 
      } 
     }); 
     //---------------------------------------- 


      try { 
       MediaController mController = new MediaController(MainActivity.this); 
       mController.setAnchorView(player); 
       Uri video = Uri.parse(videourl); 
       player.setMediaController(mController); 
       player.setVideoURI(video); 
      } catch (Exception e) { 
       Log.e("Error", e.getMessage()); 
       e.printStackTrace(); 
      } 

      player.setMediaController(null); 
      player.requestFocus(); 
      player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
       @Override 
       public void onPrepared(MediaPlayer arg0) { 
        player.start(); 
        hidespinner(); 

       } 
      }); 

     } 




    // ------------ Header Gridview ---------------- 

    @SuppressLint({"InflateParams", "SetTextI18n"}) 
    private void setGridViewHeaderAndFooter() { 
     LayoutInflater layoutInflater = LayoutInflater.from(this); 
     View headerView = layoutInflater.inflate(R.layout.grid_header, null, false); 

     //locate views 
     TextView headerText = (TextView)headerView.findViewById(R.id.textViewheader); 

     headerText.setText("Suggestion"); 

     headerView.setOnClickListener(onClickListener(0)); 

     grid.addHeaderView(headerView); 
    } 

    private View.OnClickListener onClickListener(final int i) { 
     return new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (i == 0) { 
       // Toast.makeText(MainActivity.this, "Header Clicked!", Toast.LENGTH_SHORT).show(); 
       } else { 
       // Toast.makeText(MainActivity.this, "Footer Clicked!", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }; 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     hidespinner(); 
    } 

    private void hidespinner() { 
     if (spinner != null) { 
      spinner.setVisibility(View.INVISIBLE); 
      spinner = null; 
     } 
    } 



} 

答えて

1

あなたがデータを取得し、変数やデータベースに格納する必要があるアプリを起動開きます。

ChannelListタイプListList<ChannelList>)を作成し、ChannelListデータをそこに格納します。

List<ChannelList> list = new ArrayList<>(); // containing all data 

あなたはTitleVideoUrliconUrlを保存し、listに追加することができます。

リストアイテムをクリックすると、setOnItemClickListenerを使用して位置が取得されます。 そして、その位置をクリックしてChannelListの位置を取得します。

リストタイプ変数がchannelListであるとします。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

       ChannelList channelList= list.get(position); 
       // now you have all data of clicked ChannelList 
       // do whatever you like 
       //channelList.getVideoUrl(); etc as your getter method 

      } 

     } 
    }); 

Listの詳細については、あなたはそれがHere

+0

しかし、どのように私はsetonclicklistener方法でvideoviewリンクを変更することができます確認できますか? 私はvideoviewの最初のリンクを 'String videourl =" http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4 "に上書きしなければならないので、 –

+1

はビデオurlを渡してメソッドを書き、onItemClick – Sudarshan

関連する問題