Вы не можете просто использовать R.id.imageView
, потому что это integer
идентификатор, а не объект ImageView
.Таким образом, он не может найти setImageBitmap()
метод на Integer
.
У вас есть два способа
1: с помощью findViewById()
class GalleryFragment : Fragment() {
private lateinit var viewOfLayout: View
private lateinit var imageView: ImageView
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
viewOfLayout = inflater.inflate(R.layout.fragment, container, false)
return viewOfLayout
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
imageView = view.findViewById(R.id.imageView)
imageView.setImageBitmap(bitmap) // set bitmap anywhere
}
}
2: с помощьюkotlinx.android.synthetic
class GalleryFragment : Fragment() {
private lateinit var viewOfLayout: View
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
viewOfLayout = inflater.inflate(R.layout.fragment, container, false)
viewOfLayout.imageView.setImageBitmap(bitmap) // set bitmap anywhere
return viewOfLayout
}
}
Если в этом случае imageView не импортируется автоматически, импортируйте его вручную.
import kotlinx.android.synthetic.main.fragment.view.*
Во втором методе вы должны применить плагин apply plugin: 'kotlin-android-extensions'
, если он не был применен вконец уровня приложения build.gradle
файл.