Как мне вызвать файл Activity из Fragment.kt? - PullRequest
0 голосов
/ 25 июня 2019
class ProfileFragment : Fragment() {
    private lateinit var tvhelpcenter: TextView
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        return inflater.inflate(R.layout.fragment_profile, container, false)
        /*  val view = inflater?.inflate(
              R.layout.fragment_home,
              container, false
          )*/
        /*val tv_help_center: TextView? = view?.findViewById(R.id.tv_help_center)
        tv_help_center!!.setOnClickListener {
            requireActivity().run {
                startActivity(Intent(this, HelpCenterActivity::class.java))
                finish()
            }
        }*/
    }
}

Ответы [ 2 ]

2 голосов
/ 25 июня 2019

Вы должны использовать activity!! вместо this здесь.

Для использования фрагмента -> активность!!

 activity!!.startActivity(Intent(activity!!, HelpCenterActivity::class.java))
 finish()

2-й подход

   (activity as MainActivityName)?.let{
       val intent = Intent (it, HelpCenterActivity::class.java)
       it.startActivity(intent)
       finish()
    }

let -> принимает объект, для которого он вызывается, в качестве параметра и возвращает результат лямбда-выражения.

it -> ключевое слово содержит копию свойства внутри let.

0 голосов
/ 26 июня 2019
  1. Позвоните родителю Упражнение:

    val intent = Intent (getActivity (), Main :: class.java) getActivity (). startActivity (намерение)

    1. или делай так

    активность? Воспрепятствовано { val intent = Intent (it, Main :: class.java) it.startActivity (намерение) }

...