天天看點

android kotlin log,Android kotlin使用RecyclerView執行個體-Go語言中文社群

1、建立entity類

class InternentBarEntity {

var bname: String? = null

var barea: String? = null

var badddata: String? = null

var bimage: String? = null

var bid: String? = null

}

2、建立adapter類

class InternetBarAdapter( private val entityList: List) : RecyclerView.Adapter() {

private var mOnItemClickListener: OnItemClickListener? = null

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {

val view = LayoutInflater.from(parent.context).inflate(R.layout.tab_item, null)

return ViewHolder(view)

}

override fun onBindViewHolder(holder: ViewHolder, position: Int) {

val entity = entityList[position]

try {

holder.item_intnbname.text = entity.bname

} catch (e: Exception) {

e.printStackTrace()

}

//判斷是否設定了監聽器

if (mOnItemClickListener != null) {

//為ItemView設定監聽器-

holder.itemView.setOnClickListener {

val position = holder.layoutPosition // 1

mOnItemClickListener!!.onItemClick(holder.itemView, position) // 2

}

}

}

override fun getItemCount(): Int {

return entityList.size

}

inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

var item_intnbname = itemView.findViewById(R.id.tab_tv) as TextView

}

// 删除 打勾 全選

fun cleckAll(is_checked: Int) { //全選 删除多少那裡要删除全部

for (a in entityList.indices) {

if (is_checked == a) {

entityList.get(a).bname = "選中了"

} else {

}

}

notifyDataSetChanged()

}

interface OnItemClickListener {

fun onItemClick(view: View, position: Int)

}

fun setOnItemClickListener(onItemClickListener: OnItemClickListener) {

this.mOnItemClickListener = onItemClickListener

}

}

3、添加recyclerview依賴

compile('com.android.support:recyclerview-v7:25.1.1') {

force = true

}

4、加載資料實作kotlin 代碼

private val barEntityList = ArrayList()

private var barAdapter: InternetBarAdapter? = null

private var lastposion: Int = 0

private var pagenum = 1

private var pageContent:Int = 0

private var pageSize = 10

public fun initrecycleView(){

var internentBarEntity2:InternentBarEntity= InternentBarEntity()

internentBarEntity2.badddata = "位址122"

internentBarEntity2.bname="名稱111222"

barEntityList.add(internentBarEntity2)

for (a in 0..19) {

var internentBarEntity:InternentBarEntity=InternentBarEntity()

internentBarEntity.badddata = "位址1"

internentBarEntity.bname="名稱111=="+a

barEntityList.add(internentBarEntity)

// if (a==6){

// break

// }

}

barAdapter = InternetBarAdapter( barEntityList)

barAdapter!!.setOnItemClickListener(object : InternetBarAdapter.OnItemClickListener {

override fun onItemClick(view: View, position: Int) {

barAdapter!!.cleckAll(position)

LgqLogutil.e("ITEM"+position)

}

})

mRecyclerView.layoutManager = LinearLayoutManager(context)

mRecyclerView.adapter = barAdapter

mRecyclerView.isNestedScrollingEnabled = false//禁止滑動

mRecyclerView.isFocusable = false//導航欄切換不再focuse

mRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {

//用來标記是否正在向最後一個滑動,既是否向右滑動或向下滑動

internal var isSlidingToLast = false

override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {

val manager = recyclerView!!.layoutManager as LinearLayoutManager

// 當不滾動時

if (newState == RecyclerView.SCROLL_STATE_IDLE) {

//擷取最後一個完全顯示的ItemPosition

lastposion = manager.findLastCompletelyVisibleItemPosition()

// Log.i("lgq","..........dddddd====="+"....."+lastposion);

val totalItemCount = manager.itemCount

if (lastposion == totalItemCount - 1 && isSlidingToLast) {

pagenum++

if (pagenum > pageContent) {

Toast.makeText(activity,"yidaodi",Toast.LENGTH_LONG).show()

return

}

}

}

}

override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {

super.onScrolled(recyclerView, dx, dy)

//dx用來判斷橫向滑動方向,dy用來判斷縱向滑動方向

//大于0表示,正在向右滾動;小于等于0 表示停止或向左滾動

isSlidingToLast = dy > 0

}

})

}

bug線上交流:QQ1085220040

效果:

android kotlin log,Android kotlin使用RecyclerView執行個體-Go語言中文社群