title: RecyclerView onListItemClick to create new intent
body: <p>so, before latest update, I use onListItemClick listener and it works fine, but now I tried to use RecyclerView, and I'm not sure how to implement onClick for each item, that will open up a new activity..</p>
  
  <p>this is what I used to have</p>
  
  <pre><code>public class SermonsFragment extends Fragment {
  
      @Override
      public void onListItemClick(ListView list, View v, int position, long id) {
          Intent mediaStreamIntent = new Intent(getActivity(), MediaStreamPlayer.class);
          mediaStreamIntent.putExtra("sermon_details", (android.os.Parcelable) list.getItemAtPosition(position));
          startActivity(mediaStreamIntent);
      }
  }
  </code></pre>
  
  <p>but now, instead of using listview I create a sermon adapter and it looks like this</p>
  
  <pre><code>public class SermonListAdapter extends RecyclerView.Adapter&lt;SermonListAdapter.ViewHolder&gt;{
      private ArrayList&lt;Sermon&gt; mDataset;
  
      // Provide a reference to the views for each data item
      // Complex data items may need more than one view per item, and
      // you provide access to all the views for a data item in a view holder
      //Note: need to remove static class no idea why
      public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
          // each data item is just a string in this case
          public View mView;
          public ViewHolder(View v) {
              super(v);
              v.setOnClickListener(this);
              mView = v;
          }
  
          @Override
          public void onClick(View v) {
              Log.d("SermonsListAdapter.java.debug", "itemClick " + mDataset.get(getPosition()).getName());
  
          }
      }
  
      // Provide a suitable constructor (depends on the kind of dataset)
      public SermonListAdapter(ArrayList&lt;Sermon&gt; myDataset) {
          mDataset = myDataset;
      }
  
      // Create new views (invoked by the layout manager)
      @Override
      public SermonListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                     int viewType) {
          // create a new view
          View v = LayoutInflater.from(parent.getContext())
                  .inflate(R.layout.sermon_cardview, parent, false);
          // set the view's size, margins, paddings and layout parameters
  
          ViewHolder vh = new ViewHolder(v);
          return vh;
      }
  
      // Replace the contents of a view (invoked by the layout manager)
      @Override
      public void onBindViewHolder(ViewHolder holder, int position) {
          // - get element from your dataset at this position
          // - replace the contents of the view with that element
          TextView title = (TextView) holder.mView.findViewById(R.id.sermon_title);
          TextView series = (TextView) holder.mView.findViewById(R.id.sermon_series);
          TextView pastor = (TextView) holder.mView.findViewById(R.id.sermon_pastor);
          TextView sermonDate = (TextView) holder.mView.findViewById(R.id.sermon_date);
  
          title.setText(mDataset.get(position).getName());
          series.setText(mDataset.get(position).getSeries());
          pastor.setText(mDataset.get(position).getPastor());
          sermonDate.setText(mDataset.get(position).getSermonDate());
  
      }
  </code></pre>
  
  <p>and the fragment is more or less the same, it's just I can't use onListItemClick anymore</p>
  
  <pre><code>    public class SermonsFragment extends Fragment {
          private static final int MAX_SERMONS_LIST = 20;
          private ArrayAdapter&lt;Sermon&gt; listAdapter;
          private String imageUrl;
          private static String sermonListJSONUrl = “http://someurl”;
  
          private RecyclerView mRecyclerView;
          private RecyclerView.Adapter mAdapter;
          private RecyclerView.LayoutManager mLayoutManager;
  
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setRetainInstance(true);
  
              //Check if there is internet, if yes call JSONParser
              ConnectionDetector myConnection = new ConnectionDetector(getActivity().getApplicationContext());
              Boolean isInternetOnline = false;
              isInternetOnline = myConnection.isConnectingToInternet();
  
              if(isInternetOnline) {
                  //Call JSONParser Asynchronously to get sermonList in JSON Format
                  new callJSONParserAsync().execute(sermonListJSONUrl);
              }
          }
  
          @Override
          public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
              View rootView = inflater.inflate(R.layout.fragment_sermons, container, false);
              mRecyclerView = (RecyclerView) rootView.findViewById(R.id.my_recycler_view);
              return rootView;
          }
  
          @Override
          public void onActivityCreated(Bundle savedInstanceState) {
              super.onActivityCreated(savedInstanceState);
  
              mLayoutManager = new LinearLayoutManager(getActivity());
              mRecyclerView.setLayoutManager(mLayoutManager);
              mRecyclerView.setItemAnimator(new DefaultItemAnimator());
  
              //Just an Empty Class
              ArrayList&lt;Sermon&gt; mySermon = new ArrayList&lt;Sermon&gt;();
  
              //specify an adapter
              mAdapter = new SermonListAdapter(mySermon);
              mRecyclerView.setAdapter(mAdapter);
          }
  </code></pre>
  
  <p>I have the cardview xml look like this</p>
  
  
  
  <p></p>
  
  <pre><code>&lt;!-- A CardView that contains a TextView --&gt;
  &lt;android.support.v7.widget.CardView
      xmlns:card_view="http://schemas.android.com/apk/res-auto"
      android:id="@+id/card_view"
      android:layout_margin="5dp"
      android:layout_width="match_parent"
      android:layout_height="100dp"
      card_view:cardCornerRadius="1dp"&gt;
  
      &lt;LinearLayout android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical"&gt;
          &lt;TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textAppearance="?android:attr/textAppearanceLarge"
              android:id="@+id/sermon_title" /&gt;
          &lt;TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textAppearance="?android:attr/textAppearanceSmall"
              android:id="@+id/sermon_series" /&gt;
          &lt;TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textAppearance="?android:attr/textAppearanceSmall"
              android:id="@+id/sermon_pastor" /&gt;
          &lt;TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textAppearance="?android:attr/textAppearanceSmall"
              android:id="@+id/sermon_date" /&gt;
      &lt;/LinearLayout&gt;
  &lt;/android.support.v7.widget.CardView&gt;
  </code></pre>
  
  <p></p>
  
  <p>I've got this error when try to create new intent</p>
  
  <pre><code>12-18 22:31:48.469  31887-31887/org.ifgfseattle.ifgfseattle E/AndroidRuntime﹕ FATAL EXCEPTION: main
      Process: org.ifgfseattle.ifgfseattle, PID: 31887
      android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
              at android.app.ContextImpl.startActivity(ContextImpl.java:1232)
              at android.app.ContextImpl.startActivity(ContextImpl.java:1219)
              at android.content.ContextWrapper.startActivity(ContextWrapper.java:322)
              at org.ifgfseattle.ifgfseattle.adapter.SermonListAdapter$1.onClick(SermonListAdapter.java:81)
              at android.view.View.performClick(View.java:4756)
              at android.view.View$PerformClick.run(View.java:19749)
              at android.os.Handler.handleCallback(Handler.java:739)
              at android.os.Handler.dispatchMessage(Handler.java:95)
              at android.os.Looper.loop(Looper.java:135)
              at android.app.ActivityThread.main(ActivityThread.java:5221)
              at java.lang.reflect.Method.invoke(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:372)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
  </code></pre>