Я не могу установить onClickListener RelativeLayout на фрагмент - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть относительное расположение внутри фрагмента.Фрагмент находится внутри MainActivity.Я хочу сделать setonClickListener событие, чтобы открыть новое действие.Я хочу сделать относительный макет rlLogOut, чтобы открыть SignInActivity активность.Но как мне поставить событие setOnClickListener на фрагмент?Это на OtherFragment.kt или в MainActivity

Я пытался сделать setOnClickListener внутри MainActivity, и я знаю, что это не решение.Я думаю, что целью является проблема.Но я не знаю синтаксис для этого.Я новичок в kotlin.

import android.content.Intent
import android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.fragment_others.*


// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private const val ARG_PARAM1 = "param1"
private const val ARG_PARAM2 = "param2"

/**
 * A simple [Fragment] subclass.
 *
 */
class OtherFragment : Fragment() {

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?

): View? {
    // Inflate the layout for this fragment
    rlLogOut.setOnClickListener{
        val mainIntent = Intent(
            this@OtherFrament,
            SignInActivity::class.java
        )
        startActivity(mainIntent)
    }
    return inflater.inflate(R.layout.fragment_others, container, false)
}
}

Я ожидаю, что при нажатии rlLogOut откроется действие SignInActivity.Спасибо за помощь.

1 Ответ

0 голосов
/ 26 апреля 2019
  override fun onCreateView(
      inflater: LayoutInflater, 
      container: ViewGroup?,
      savedInstanceState: Bundle?
  ): View = inflater.inflate(R.layout.fragment_others, container, false)


  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
      super.onViewCreated(view, savedInstanceState) 
      rlLogOut.setOnClickListener {
            val mainIntent = Intent(requireActivity(),  SignInActivity::class.java)
            requireActivity().startActivity(mainIntent)
      }    
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...