您好,最近將我的專案從 java 轉換為 kotlin,遇到了很多問題,這就是其中之一
我不知道到底想說什么,也沒有指向錯誤所在的正確行,因為在第 12 行它指向的是“import com.example.myappnotfinal.R”
錯誤
Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter menuInfo
at com.example.myappnotfinal.AdaptersAndMore.PostAdapter$PostViewHolder.onCreateContextMenu(Unknown Source:12)
PostAdapter.kt
class PostAdapter /* ShimmerFrameLayout shimmerFrameLayout; */(
var mcontext: Context, var mUploads: List<Upload>
) : RecyclerView.Adapter<PostAdapter.PostViewHolder>() {
private val postDiffUtil = PostDiffUtil()
val postListDiffer = AsyncListDiffer(this, postDiffUtil)
private var mListener: OnItemClickListener? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PostViewHolder {
val view: View = LayoutInflater.from(parent.context)
.inflate(R.layout.post_item_container_profile, parent, false)
return PostViewHolder(view)
}
override fun onBindViewHolder(holder: PostViewHolder, position: Int) {
val uploadCurrent = postListDiffer.currentList[position]
val shimmer = ColorHighlightBuilder()
.setBaseColor(Color.parseColor("#F3F3F3"))
.setBaseAlpha(1f)
.setHighlightColor(Color.parseColor("#E7E7E7"))
.setHighlightAlpha(1f)
.setDropoff(50f)
.build()
val shimmerDrawable = ShimmerDrawable()
shimmerDrawable.setShimmer(shimmer)
Glide.with(mcontext)
.load(uploadCurrent.getmImageUrl())
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.placeholder(shimmerDrawable)
.centerCrop()
.fitCenter()
.into(holder.imageView)
}
override fun getItemCount(): Int {
return mUploads.size
}
fun setOnItemClickListener(listener: OnItemClickListener?) {
mListener = listener
}
fun setUploads(upload: List<Upload>) {
mUploads = upload
}
interface OnItemClickListener {
fun onClick(view: View?)
fun onItemClick(position: Int)
fun onDeleteClick(position: Int)
}
inner class PostViewHolder internal constructor(itemView: View) :
RecyclerView.ViewHolder(itemView), View.OnClickListener, OnCreateContextMenuListener,
MenuItem.OnMenuItemClickListener {
var imageView: ShapeableImageView = itemView.findViewById(R.id.imagePost)
override fun onClick(v: View) {
if (mListener != null) {
val position = adapterPosition
if (position != RecyclerView.NO_POSITION) {
mListener!!.onItemClick(position)
}
}
}
override fun onCreateContextMenu(menu: ContextMenu, v: View, menuInfo: ContextMenuInfo) {
val delete = menu.add(Menu.NONE, 2, 2, "Delete")
delete.setOnMenuItemClickListener(this)
}
override fun onMenuItemClick(item: MenuItem): Boolean {
if (mListener != null) {
val position = adapterPosition
if (position != RecyclerView.NO_POSITION) {
if (item.itemId == 2) {
mListener!!.onDeleteClick(position)
return true
}
}
}
return false
}
init {
itemView.setOnClickListener(this)
itemView.setOnCreateContextMenuListener(this)
}
}
companion object
}
uj5u.com熱心網友回復:
更改override fun onCreateContextMenu(menu: ContextMenu, v: View, menuInfo: ContextMenuInfo)為override fun onCreateContextMenu(menu: ContextMenu, v: View, menuInfo: ContextMenuInfo?)asContextMenuInfo可以為空
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/368396.html
