0

我知道这些问题已经得到解答,但我认为这是另一回事。所以,我有以下代码:

viewPager = findViewById<View>(R.id.viewPagerGaleria) as ViewPager
val adapter = ViewPageAdapter(this)
viewPager.adapter = adapter
//dots
val pageIndicatorView = findViewById<View>(R.id.pageIndicatorView) as PageIndicatorView
pageIndicatorView.setViewPager(viewPager)

当我运行它时,会发生这种情况: ... kotlin.TypeCastException: null 不能转换为非 null 类型 android.support.v4.view.ViewPager。正常到这里,对吧?不,因为当我这样做时,错误是一样的:

val viewPager = findViewById<View>(R.id.viewPagerGaleria) as? ViewPager
val adapter = ViewPageAdapter(this)
viewPager?.adapter = adapter
//dots
val pageIndicatorView = findViewById<View>(R.id.pageIndicatorView) as? PageIndicatorView
pageIndicatorView?.setViewPager(viewPager)

你能帮助我吗?谢谢你。

4

2 回答 2

0

对不起,伙计们,我把那个代码放在了错误的类中!我的错!

于 2018-10-29T17:18:34.813 回答
0

我同意@TheWanderer,你的问题在这里 :findViewById**** 。

因此,要解决此问题,您可以删除类型并将其替换为并摆脱演员“as?ViewPager”,因为在这种情况下不需要它

val viewPager = findViewById<ViewPager?>(R.id.viewPagerGaleria) 

或者明确省略目标类类型并保留演员表

val viewPager = view.findViewById(R.id.viewpager) as? ViewPager

PS:而且您的布局中可能没有所需的 viewPager id。

于 2018-10-29T16:54:06.200 回答