Ошибка объявления намерения в фрагменте в Kotlin: - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь создать намерение, которое использует кнопку внутри фрагмента в основном действии, чтобы открыть новое действие.Появляется ошибка, подчеркивающая объект «Намерение» красной линией.Ошибка:

Ни одна из следующих функций не может быть вызвана с предоставленными аргументами.(Context !, класс <*>!), Определенный в android.content.Intent (String !, Uri!), Определенный в android.content.Intent

Я попробовал следующий код

val fieldIntent = Intent(this@Fragment1, ProductsAndInputs::class.java )

вместо начальных

val fieldIntent = Intent(this, ProductsAndInputs::class.java )

На основании ответа, предоставленного на другом форуме, но он также не работал


    class Fragment1 : Fragment() {


        override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
            val view: View = inflater!!.inflate(R.layout.fragment_fragment1, container, false)

            view.btn_field.setOnClickListener { view ->
                val fieldIntent = Intent(this@Fragment1, ProductsAndInputs::class.java )
                Log.i("Button clicked", "Field button")
            }
            return view
        }
        override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

            super.onViewCreated(view, savedInstanceState)
        }

    }

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

проблема в том, что конструктор Intent хочет контекст, но вы передаёте ему фрагмент.Но вы можете получить контекст из фрагмента: попробуйте это:

 val fieldIntent = Intent(this@Fragment1.context, Products...

О, и вам тоже нужно вызвать startActivity, как сказал Аджай.

0 голосов
/ 07 мая 2019

Вам необходимо добавить этот код val fieldIntent = Intent (this @ Fragment1, ProductsAndInputs :: class.java) startActivity (fieldIntent)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...