簡體   English   中英

如何在Android的ActionMode類中添加自己的函數?

[英]How to add your own function in ActionMode class in Android?

我想實現一個ActionMode作為selection mode 我想在ActionMode添加一個功能toggle() ,以切換列表的選擇。

我的ActionMode代碼:

class Selection(/* some parameters */): ActionMode.Callback {
    private val selectedPositions = ArrayList<Int>()

    fun toggle(position: Int) {
        if (selectedPositions.contains(position)) {
            selectedPositions.remove(position)
        } else {
            selectedPositions.add(position)
        }
    }

    override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean { /* some code */ }
    override fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean { /* some code */ }
    override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?): Boolean = false
    override fun onDestroyActionMode(mode: ActionMode?) { /* some code */ }
}

我的問題是我無法從我的通話活動/片段中使用toggle()函數。 例如:

private var actionMode: ActionMode? = null
// initialising action mode
if (actionMode == null) {
    actionMode = activity!!.startActionMode(Selection(/* some parameters */))
}
// I am not able to do this
actionMode!!.toggle(position)

因為該函數在您的Selection類上,而不在ActionMode類上。 在Selection類的實例上調用它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM