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