Java 如何使用recyclerview打开隐式意图,从而打开youtube视频 public类AnimateToolbar扩展了AppCompative活动{ 私有折叠工具栏布局折叠工具栏; 私有AppBarLayout AppBarLayout; 私人甜点适配器甜点适配器; 私人名单人员; 私人回收车; 私人菜单折叠菜单; 私有布尔值appBarExpanded=true; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u animate\u工具栏); 最终工具栏=(工具栏)findViewById(R.id.anim_工具栏); 设置支持操作栏(工具栏); 如果(getSupportActionBar()!=null) getSupportActionBar().setDisplayHomeAsUpEnabled(true); appBarLayout=(appBarLayout)findViewById(R.id.appbar); CollasingToolbar=(CollasingToolbarLayout)findViewById(R.id.Collasing_工具栏); collasingToolbar.setTitle(getString(R.string.android_deserts)); 位图位图=BitmapFactory.decodeResource(getResources(), R.可拉拔式收割台); palete.from(位图).generate(新建palete.PaletteAsyncListener()){ @抑制警告(“资源类型”) @凌驾 已生成的公共空心板(调色板){ int vibrantColor=palete.getVibrantColor(R.color.primary_500); collasingToolbar.setContentScrimColor(vibrantColor); 折叠工具栏。setStatusBarScrimColor(R.color.black_trans80); } });

Java 如何使用recyclerview打开隐式意图,从而打开youtube视频 public类AnimateToolbar扩展了AppCompative活动{ 私有折叠工具栏布局折叠工具栏; 私有AppBarLayout AppBarLayout; 私人甜点适配器甜点适配器; 私人名单人员; 私人回收车; 私人菜单折叠菜单; 私有布尔值appBarExpanded=true; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u animate\u工具栏); 最终工具栏=(工具栏)findViewById(R.id.anim_工具栏); 设置支持操作栏(工具栏); 如果(getSupportActionBar()!=null) getSupportActionBar().setDisplayHomeAsUpEnabled(true); appBarLayout=(appBarLayout)findViewById(R.id.appbar); CollasingToolbar=(CollasingToolbarLayout)findViewById(R.id.Collasing_工具栏); collasingToolbar.setTitle(getString(R.string.android_deserts)); 位图位图=BitmapFactory.decodeResource(getResources(), R.可拉拔式收割台); palete.from(位图).generate(新建palete.PaletteAsyncListener()){ @抑制警告(“资源类型”) @凌驾 已生成的公共空心板(调色板){ int vibrantColor=palete.getVibrantColor(R.color.primary_500); collasingToolbar.setContentScrimColor(vibrantColor); 折叠工具栏。setStatusBarScrimColor(R.color.black_trans80); } });,java,android,android-recyclerview,android-cardview,Java,Android,Android Recyclerview,Android Cardview,private void initializeData(){ persons=newarraylist(); //当用户单击此卡片视图或循环视图时,youtube将在youtube应用程序或用户手机上可用的浏览器中打开 public class AnimateToolbar extends AppCompatActivity { private CollapsingToolbarLayout collapsingToolbar; private AppBarLayout app

private void initializeData(){ persons=newarraylist(); //当用户单击此卡片视图或循环视图时,youtube将在youtube应用程序或用户手机上可用的浏览器中打开

public class AnimateToolbar extends AppCompatActivity {

    private CollapsingToolbarLayout collapsingToolbar;
    private AppBarLayout appBarLayout;


    private DessertAdapter dessertAdapter;

    private List<Dessert> persons;
    private RecyclerView rv;

    private Menu collapsedMenu;
    private boolean appBarExpanded = true;

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

        setContentView(R.layout.activity_animate_toolbar);

        final Toolbar toolbar = (Toolbar) findViewById(R.id.anim_toolbar);
        setSupportActionBar(toolbar);
        if (getSupportActionBar() != null)
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        appBarLayout = (AppBarLayout) findViewById(R.id.appbar);

        collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
        collapsingToolbar.setTitle(getString(R.string.android_desserts));

        Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
                R.drawable.header);

        Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
            @SuppressWarnings("ResourceType")
            @Override
            public void onGenerated(Palette palette) {
                int vibrantColor = palette.getVibrantColor(R.color.primary_500);
                collapsingToolbar.setContentScrimColor(vibrantColor);
                collapsingToolbar.setStatusBarScrimColor(R.color.black_trans80);
            }
        });
persons.add(新甜点(“发动机”,“5.9升V12发动机”,R.mipmap.enginelogo));
添加(新甜点(“薰衣草味”,“25岁”,R.drawable.Lavery));
添加(新甜点(“Lillie Watts”,“35岁”,R.drawable.Lillie));
}
//我想用人的第一个位置打开一个意图,这样它就打开了一个youtube视频。
private void initializedapter(){
甜点适配器=新甜点适配器(人);
rv.设置适配器(适配器);
}
//我尝试了不同的方法,但到目前为止,没有一种方法对我有效。请帮助
//这是upper recyclerview所基于的适配器
公共类DessertAdapter扩展了RecyclerView.Adapter{
公共静态类DessertVh扩展了RecyclerView.ViewHolder{
卡德维尤简历;
TextView人名;
文本视图人物;
ImageView个人照片;
甜点VH(查看项目视图){
超级(项目视图);
cv=(cardwiew)itemView.findviewbyd(R.id.cv);
personName=(TextView)itemView.findViewById(R.id.person\u name);
personAge=(TextView)itemView.findViewById(R.id.person\u age);
personPhoto=(ImageView)itemView.findViewById(R.id.person\u photo);
}
}
列出人员名单;
甜点适配器(列出人员){this.persons=persons;}
@凌驾
附加ToRecyclerView(RecyclerView RecyclerView)上的公共无效{
super.onAttachedToRecyclerView(recyclerView);
}
@凌驾
公共甜点vh onCreateViewHolder(视图组视图组,int i){
视图v=LayoutInflater.from(viewGroup.getContext()).flate(R.layout.item_,viewGroup,false);
甜品VH dvh=新甜品VH(v);
返回dvh;
}
@凌驾
BindViewHolder上的公共无效(DessertVh DessertVh,int i){
dessertVh.personName.setText(persons.get(i.name));
甜品vh.personAge.setText(persons.get(i.age));
dessertVh.personPhoto.setImageResource(persons.get(i.photoId));
}
@凌驾
public int getItemCount(){return persons.size();}
}
尝试以下方法: (在RecylcerView的侦听器中):


我希望这会有所帮助!:D

您可以像这样设置每个项目的点击。您需要在列表项目中传递并保留一些视频url。然后您将使用该url启动youtube活动

Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT, persons.get(position); intent.setPackage("com.google.android.apps.youtube.app"); startActivity(intent);

如果他知道如何在recyclerView内部设置onClick,我想他会自己做。你的回答中也应该包含onClick方法,但它在每个循环视图上都有效,但我希望它在用户单击特定视图时打开。更改
holder.itemView.setOnClick
与你要单击的项目。我还想使用相同的Adaptr也适用于其他活动。这取决于您对其他活动中的所有列表的视图是否相同。
Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT, persons.get(position); intent.setPackage("com.google.android.apps.youtube.app"); startActivity(intent);
List<Dessert> persons;
Context context
DessertAdapter(Context context, List<Dessert> persons)
{
  this.persons = persons;
  this.context = context;
}

...

@Override
public void onBindViewHolder(DessertVh dessertVh, int i){
   ...

    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Uri url = Uri.parse("vnd.youtube://" + video_id); // get your url from list item or your code.
            Intent intent = new Intent(Intent.ACTION_VIEW, url);
            context.startActivity(intent);
        }
    });
    }
    DessertAdapter adapter = new DessertAdapter(AnimateToolbar.this, persons);
    rv.setAdapter(adapter);