title: arguments in Fragment is still null
body: <p>I'm trying to pass two strings through a bundle to my other fragment. Problem is, that arguments are still null in onCreate. Here is my code:</p>
  
  <pre><code>class VenueDetailFragment : Fragment() {
  
  private lateinit var venueId: String
  private lateinit var venueName: String
  
  companion object {
      fun newInstance(venue: Venue): VenueDetailFragment {
          val frag = VenueDetailFragment()
          val bundle = Bundle()
          bundle.putString(Extra.VENUE_ID_KEY, venue.id)
          bundle.putString(Extra.VENUE_NAME, venue.name)
          frag.arguments = bundle
          return VenueDetailFragment()
      }
  }
  
  private lateinit var viewModel: VenueDetailViewModel
  
  override fun onAttach(context: Context) {
      super.onAttach(context)
      viewModel = ViewModelProviders.of(this).get(VenueDetailViewModel::class.java)
  }
  
  override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      arguments?.let {
          venueId = it.getString(Extra.VENUE_ID_KEY, "0")
          venueName = it.getString(Extra.VENUE_NAME, getString(R.string.venue_detail_title_unknown))
      }
  }
  
  override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? =
      inflater.inflate(R.layout.venue_detail_fragment, container, false)
  
  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
      super.onViewCreated(view, savedInstanceState)
  
      viewModel.getVenueDetails(venueId).observe(this, Observer { result -&gt;
          result?.let { safeVenue -&gt;
              venueDetailTitle.text =
                  if (safeVenue.name.isNotEmpty()) safeVenue.name else venueName
  
              venueDetailDescription.text =
                  if (safeVenue.description.isNotEmpty()) safeVenue.description
                  else getString(R.string.venue_detail_description_unknown)
  
              venueDetailAddress.text = safeVenue.location.formattedAddress.joinToString(",\n")
  
              venueDetailRatingBar.rating = (safeVenue.rating / 5).toFloat()
  
              setupContactView(safeVenue.contact)
          }
      })
  }
  
  private fun setupContactView(contact: Contact) {
      venueDetailTwitterBtn.visibility = getVisibility(contact.twitter)
      venueDetailInstagramBtn.visibility = getVisibility(contact.instagram)
      venueDetailFacebookBtn.visibility = getVisibility(contact.facebook)
      venueDetailCallBtn.visibility = getVisibility(contact.phone)
  }
  
  private fun getVisibility(contactType: String?): Int {
      return if (contactType.isNullOrEmpty()) View.VISIBLE else View.GONE
  }
  </code></pre>
  
  <p>}</p>
  
  <p>I initialise the new fragment by:</p>
  
  <pre><code>private fun navigateToDetailPage(data: List&lt;Venue&gt;) {
      activity?.let { safeActivity -&gt;
          venueResultList.adapter = VenueFinderAdapter(
              safeActivity, data,
              object : VenueFinderAdapter.VenueSelectionListener {
                  override fun onVenueSelected(venue: Venue) {
                      safeActivity.supportFragmentManager.beginTransaction().apply {
                          replace(R.id.fragmentContainer, VenueDetailFragment.newInstance(venue))
                          addToBackStack(null)
                          commit()
                      }
                  }
              })
      }
  }
  </code></pre>
  
  <p>If I run this, my two lateinit vars (Strings) are still null in onViewCreated. I saw another post telling me that you should get the values from the arguments in onCreate, as you can see I tried that as well, but without success. </p>
  
  <p>Can someone tell me what I'm doing wrong here?</p>