【已解决】 自己在一个Fragment里面加了一个banner使用的是youth.banner,但是一运行就报空指针异常
这是我的代码
class BlankFragment : Fragment() {
// TODO: Rename and change types of parameters
private var param1: String? = null
private var param2: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
banner()
return inflater.inflate(R.layout.fragment_blank, container, false)
}
private fun banner(){
val arrayImage = arrayListOf(R.mipmap.a1,R.mipmap.a2,R.mipmap.a3,R.mipmap.a4)
//设置内置样式,共有六种可以点入方法内逐一体验使用。
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE)
//设置图片加载器,图片加载器在下方
banner.setImageLoader(MyLoader())
//设置图片网址或地址的集合
banner.setImages(arrayImage)
//设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验
banner.setBannerAnimation(Transformer.Default)
//设置轮播图的标题集合
//banner.setBannerTitles(arrayTitle)
//设置轮播间隔时间
banner.setDelayTime(3000)
//设置是否为自动轮播,默认是“是”。
banner.isAutoPlay(true)
//设置指示器的位置,小点点,左中右。
banner.setIndicatorGravity(BannerConfig.CENTER)
//以上内容都可写成链式布局,这是轮播图的监听。比较重要。方法在下面。
banner.setOnBannerListener {
Log.d("=*=", "第几张" + it.dec())
}
//必须最后调用的方法,启动轮播图。
banner.start()
}
//自定义的图片加载器
private inner class MyLoader : ImageLoader() {
override fun displayImage(context: Context, path: Any, imageView: ImageView) {
Glide.with(context).load(path as Int).into(imageView)
}
}
companion object {
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment BlankFragment.
*/
// TODO: Rename and change types and number of parameters
@JvmStatic
fun newInstance(param1: String, param2: String) =
BlankFragment().apply {
arguments = Bundle().apply {
putString(ARG_PARAM1, param1)
putString(ARG_PARAM2, param2)
}
}
}
错误代码:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.youth.banner.Banner com.youth.banner.Banner.setBannerStyle(int)' on a null object reference
你的banner变量在哪里实例化的呢? 没有实例化,当然就是空指针啦
你的banner从哪里来的呢?卧槽!这年轻人