Using both AppCompat and Youtube API in one activity with firebase and RecyclerView in Android -
i working on application in both appcompatactivity , youtube api should used, reasons unable use both in same activity when use appcompatacticity toolbar youtube api stops working , if extends youtubebaseactivity toolbar not work, using recyclerview
, firebase database in applcation, can me , tell me how can implement appcompatactivity , youtubeapi both work, have researched many forums did not provide useful information on doing so, please help.
i using android studio
youtube class file :
public class homepage extends youtubebaseactivity{ private recyclerviewpager mrecyclerview; private databasereference mdatabasereference; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_home_page); mdatabasereference = firebasedatabase.getinstance().getreference().child("holla"); mrecyclerview = (recyclerviewpager) findviewbyid(r.id.list); final linearlayoutmanager layout = new linearlayoutmanager(homepage.this, linearlayoutmanager.vertical, false); mrecyclerview.setlayoutmanager(layout); toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar); setsupportactionbar(toolbar); mauth = firebaseauth.getinstance(); mrecyclerview.setontouchlistener(new view.ontouchlistener() { @override public boolean ontouch(view v, motionevent event) { if (event.getaction() == motionevent.action_down) { if (getsupportactionbar().isshowing()) { getsupportactionbar().hide(); fab.hide(); } else { getsupportactionbar().show(); fab.show(); } return true; } else return false; } }); } @override public void onstart() { super.onstart(); firebaserecycleradapter <post, postviewholder> firebaserecycleradapter = new firebaserecycleradapter<post, postviewholder>( post.class, r.layout.post_row_recycle_home, postviewholder.class, mdatabasereference ) { @override protected void populateviewholder(postviewholder viewholder, post model, int position) { viewholder.setyoutube(model.getyoutube()); } }; mrecyclerview.setadapter(firebaserecycleradapter); } public static class postviewholder extends recyclerviewpager.viewholder{ view mview; public postviewholder(view itemview) { super(itemview); mview = itemview; } public void setyoutube(final string youtube){ final youtubeplayerview youplay = (youtubeplayerview) mview.findviewbyid(r.id.youtuber); youplay.initialize("some key", new youtubeplayer.oninitializedlistener() { @override public void oninitializationsuccess(youtubeplayer.provider provider, youtubeplayer youtubeplayer, boolean b) { youtubeplayer.cuevideo(youtube); } @override public void oninitializationfailure(youtubeplayer.provider provider, youtubeinitializationresult youtubeinitializationresult) { } }); }
youtube cardview xml:
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.cardview xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/cardview" android:layout_width="match_parent" android:layout_height="wrap_content" card_view:cardcornerradius="10dp"> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <com.google.android.youtube.player.youtubeplayerview android:id="@+id/youtuber" android:layout_width="match_parent" android:layout_height="200dp" />
log error:
e/uncaughtexception: java.lang.runtimeexception: unable start activity componentinfo{andromeda.petrochemical/andromeda.petrochemical.homepage}: java.lang.illegalargumentexception: no view found id 0x7f10015f (andromeda.petrochemical:id/watch_video_player) fragment youtubeplayersupportfragment{79044c4 #0 id=0x7f10015f} @ android.app.activitythread.performlaunchactivity(activitythread.java:2646) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2707) @ android.app.activitythread.-wrap12(activitythread.java) @ android.app.activitythread$h.handlemessage(activitythread.java:1460) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:154) @ android.app.activitythread.main(activitythread.java:6077) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:865) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:755) caused by: java.lang.illegalargumentexception: no view found id 0x7f10015f (andromeda.petrochemical:id/watch_video_player) fragment youtubeplayersupportfragment{79044c4 #0 id=0x7f10015f} @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1293) @ android.support.v4.app.fragmentmanagerimpl.movefragmenttoexpectedstate(fragmentmanager.java:1528) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1595) @ android.support.v4.app.backstackrecord.executeops(backstackrecord.java:758) @ android.support.v4.app.fragmentmanagerimpl.executeops(fragmentmanager.java:2363) @ android.support.v4.app.fragmentmanagerimpl.executeopstogether(fragmentmanager.java:2149) @ android.support.v4.app.fragmentmanagerimpl.optimizeandexecuteops(fragmentmanager.java:2103) @ android.support.v4.app.fragmentmanagerimpl.execpendingactions(fragmentmanager.java:2013) @ android.support.v4.app.fragmentcontroller.execpendingactions(fragmentcontroller.java:388) @ android.support.v4.app.fragmentactivity.onstart(fragmentactivity.java:607) @ android.support.v7.app.appcompatactivity.onstart(appcompatactivity.java:178) @ andromeda.petrochemical.homepage.onstart(homepage.java:123) @ android.app.instrumentation.callactivityonstart(instrumentation.java:1248) @ android.app.activity.performstart(activity.java:6679) @ android.app.activitythread.performlaunchactivity(activitythread.java:2609) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2707) @ android.app.activitythread.-wrap12(activitythread.java) @ android.app.activitythread$h.handlemessage(activitythread.java:1460) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:154) @ android.app.activitythread.main(activitythread.java:6077) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:865) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:755)
what want achieve
ok have normal homepage
activity extend appcompatactivity
at xml file have container videoplayer
<framelayout android:id="@+id/watch_video_player" android:layout_width="match_parent" android:layout_height="@dimen/watf_main_video" />
at activity add player
youtubeplayersupportfragment youtubeplayerfragment = youtubeplayersupportfragment.newinstance(); fragmenttransaction transaction = getsupportfragmentmanager().begintransaction(); transaction.add(r.id.watch_video_player, youtubeplayerfragment).commit();
it youtube player initialize normal
youtubeplayerfragment.initialize(constants.api_key, new youtubeplayer.oninitializedlistener() { @override public void oninitializationsuccess(youtubeplayer.provider provider, youtubeplayer youtubeplayer, boolean wasrestored) { //load , play video current id youtubeplayer.loadvideo(youtubeapiutilities.getvideoid(item)); youtubeplayer.play(); } @override public void oninitializationfailure(youtubeplayer.provider provider, youtubeinitializationresult youtubeinitializationresult) { toast.maketext(getcontext(), r.string.can_not_initialize_youtube_player, toast.length_long).show(); } });
Comments
Post a Comment