ОШИБКА: android.view.WindowManager $ BadTokenException: невозможно добавить окно - нулевой токен недействителен;ваша деятельность работает? - PullRequest
0 голосов
/ 09 ноября 2019

Я учусь и пытаюсь отобразить некоторые заданные данные в другом макете, который создан исключительно. Я знаю, что это можно сделать с помощью Intent, но я пытался использовать Dialog в соответствии с видео урока.

Вот код ниже

   override fun onBindViewHolder(holder:ContactViewHolder, position:Int){
        holder.name.text = data[position].name
        holder.phoneNumber.text = data[position].phone
        holder.image.setImageResource(data[position].image)
        holder.card.setOnClickListener {

            Toast.makeText(context, data[position].phone, Toast.LENGTH_LONG).show()

            val profilePage = Dialog(context)
            profilePage.setContentView(R.layout.profile)
            profilePage.window!!.setType(WindowManager.LayoutParams.TYPE_APPLICATION_PANEL)
            profilePage.setTitle("Profile page")

            val profileName = profilePage.findViewById<TextView>(R.id.profileName)
            val profileEmail = profilePage.findViewById<TextView>(R.id.profileEmail)
            val profileImage = profilePage.findViewById<ImageView>(R.id.profileImage)

            profileName.text = data[position].name
            profileEmail.text = data[position].phone
            profileImage.setImageResource(data[position].image)

            profilePage.show()

        }



    }

Я также пробовал несколько вариантов, таких как установка разрешенияв файле манифеста, но ошибка сохраняется

1 Ответ

0 голосов
/ 09 ноября 2019

Вам нужно Activity как Context для Dialog с.

context, который вы передали конструктору Dialog, скорее всего, не является действием.

...