2017-10-03 3 views
0

J'ai une vue de recyclage horizontal avec une vignette et un texte. Lorsque vous cliquez sur l'image miniature, la vidéo correspondante doit être lue. Je suis capable de montrer l'image et le texte et maintenant je me suis coincé avec plus loin en procédant à la lecture des vidéos. Toute aide serait très appréciée.Vue du recycleur horizontal avec vidéos et texte

Activité principale

public class MainActivity extends AppCompatActivity { 

private RecyclerView horizontal_recycler_view; 
private ArrayList<String> horizontalList; 
private HorizontalAdapter horizontalAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    horizontal_recycler_view = (RecyclerView) findViewById(R.id.horizontal_recycler_view); 

    horizontalList = new ArrayList<>(); 
    horizontalList.add("horizontal 1"); 
    horizontalList.add("horizontal 2"); 
    horizontalList.add("horizontal 3"); 
    horizontalList.add("horizontal 4"); 
    horizontalList.add("horizontal 5"); 

    horizontalAdapter = new HorizontalAdapter(this, horizontalList); 


    LinearLayoutManager horizontalLayoutManager 
      = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.HORIZONTAL, false); 
    horizontal_recycler_view.setLayoutManager(horizontalLayoutManager); 

    horizontal_recycler_view.setAdapter(horizontalAdapter); 
} 

}

Adaptateur

public class HorizontalAdapter extends RecyclerView.Adapter<HorizontalAdapter.MyViewHolder> { 

private List<String> horizontalList; 
Context ctxt; 


public HorizontalAdapter(Context context, List<String> horizontalList) { 
    this.ctxt = context; 
    this.horizontalList = horizontalList; 

} 

@Override 
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View itemView = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.horizontal_item_view, parent, false); 

    return new MyViewHolder(itemView); 
} 

@Override 
public void onBindViewHolder(final MyViewHolder holder, final int position) { 
    holder.txtView.setText(horizontalList.get(position)); 

    holder.imgView.setImageResource(R.drawable.thumbnail); 

    holder.txtView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(ctxt, holder.txtView.getText().toString(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 

@Override 
public int getItemCount() { 
    return horizontalList.size(); 
} 

public class MyViewHolder extends RecyclerView.ViewHolder { 
    public TextView txtView; 
    public ImageView imgView; 


    public MyViewHolder(View view) { 
     super(view); 
     imgView = (ImageView) view.findViewById(R.id.thumbnail); 
     txtView = (TextView) view.findViewById(R.id.video_title); 

    } 
} 

}

+0

souhaitez-vous lire la vidéo dans une autre activité? ou dans la cellule? – Boukharist

+0

Dans une autre activité –

+0

obtenir le chemin absolu de la vidéo index cliqué et le passer à l'activité suivante et le lire en utilisant http://www.androidbegin.com/tutorial/android-video-streaming-videoview-tutorial/ – Stallion

Répondre

0
Main Activity in --->> 

    recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 
    recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true)); 
    recyclerView.setAdapter(new Top_ServiceAdapter()); 

---->Adapter in you horizontal_item_view.xml layout in 

linearlayout in image or text with orientation vertical .... so done this problem 
0

Vous devez d'abord créer un élément de classe qui contient: « title », « URLvidéo », « thumbnail_url »

alors votre liste horizontale serait une liste de

private List<Item> horizontalList; 

puis sur votre viewHolder, vous obtenez le videoUrl et ouvrez la nouvelle activité avec une intention qui a l'URL de la vidéo dans son ensemble.

Intent intent = new Intent(ctxt, VideoActivity.class); 
    intent.putExtra("VIDEO_URL", item.videoUrl); 
    startActivity(intent); 

puis sur votre VideoActivity vous devez une bibliothèque implémente videoPlayer pour afficher la vidéo en utilisant l'extrait URLvidéo

Intent intent = getIntent(); 
String videoUrl = intent.getStringExtra("VIDEO_URL");