YouTube Video you have uploaded not playing in app using YouTubeAPI android
One of the reason I found is while uploading video to youtube do not share it private..
If you do you get the warning as cannot load...and video will not be played
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/cardview_light_background" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> </RelativeLayout>RecyclerView as Fragment
public class RecyclerViewFragment extends Fragment { private static final String TAG = "RecyclerViewFragment"; private enum LayoutManagerType { LINEAR_LAYOUT_MANAGER } protected LayoutManagerType mCurrentLayoutManagerType; protected RecyclerView mRecyclerView; protected CustomCardAdapter adapter; protected RecyclerView.LayoutManager mLayoutManager; //rowIteems is a list in which we shall fill the data which is to be displayed
private static ArrayList<RowItem> rowItems; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Initialize dataset initDataset(); } private void initDataset() {
//RowItem is a model class which provides data rowItems = new ArrayList<RowItem>(); for (int i = 0; i < titles.length; i++) { RowItem item = new RowItem(images[i], titles[i], descriptions[i]); rowItems.add(item); } } public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_recycler_view, container, false); rootView.setTag(TAG); mRecyclerView = (RecyclerView) rootView.findViewById(R.id.my_recycler_view); // LinearLayoutManager is used here, this will layout the elements in a similar fashion // to the way ListView would layout elements. The RecyclerView.LayoutManager defines how // elements are laid out. mLayoutManager = new LinearLayoutManager(getActivity()); mCurrentLayoutManagerType = LayoutManagerType.LINEAR_LAYOUT_MANAGER; mRecyclerView.setLayoutManager(mLayoutManager); adapter = new CustomCardAdapter(rowItems); // Set CustomAdapter as the adapter for RecyclerView. mRecyclerView.setAdapter(adapter); mRecyclerView.addOnItemTouchListener( new RecyclerItemClickListener(this.getContext(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) {
//Do whatever you want onclick works here you can show a toast here } }) ); return rootView; } @Override public void onStop() { super.onStop(); Constants.dismissDialogue(); } }
package com.example.hp.listview.Activity; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener { private OnItemClickListener mListener; public interface OnItemClickListener { public void onItemClick(View view, int position); } GestureDetector mGestureDetector; public RecyclerItemClickListener(Context context, OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }); } @Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { View childView = view.findChildViewUnder(e.getX(), e.getY()); if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { mListener.onItemClick(childView, view.getChildPosition(childView)); return true; } return false; } @Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { } @Override public void onRequestDisallowInterceptTouchEvent (boolean disallowIntercept){} }
This example is for the case where fileData is very huge and in json format let map = new Map<string, string>() map.set(this.ge...