首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >gridView.setMultiChoiceModeListener在安卓应用程序中不起作用

gridView.setMultiChoiceModeListener在安卓应用程序中不起作用
EN

Stack Overflow用户
提问于 2018-06-30 04:00:49
回答 1查看 299关注 0票数 0

我的代码如下:

代码语言:javascript
复制
class MySitesActivity : AppCompatActivity() {

    val REQUEST_CODE = 3
    private val TAG = "MySitesActivity"
    lateinit var gridView: GridView
    lateinit var siteAdapter:BaseAdapter
    lateinit var sites:ArrayList<Site>
    lateinit var actionBarObject:ActionBar


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my_sites)
        setSupportActionBar(findViewById(R.id.my_toolbar))

        sites = ArrayList(db.appDao().getAllSites()) //From Database
        gridView = findViewById<View>(R.id.gridview) as GridView
        siteAdapter = SitesAdapter(this@MySitesActivity, sites)
        gridView.adapter = siteAdapter
        gridView.choiceMode = GridView.CHOICE_MODE_MULTIPLE // CAN DO IN XML
        actionBarObject = supportActionBar!!
        actionBarObject.setDisplayHomeAsUpEnabled(true)


        Log.d(TAG, "* Setting MultiChoiceModeListener *")
        gridView.setMultiChoiceModeListener(object : AbsListView.MultiChoiceModeListener {

            override fun onItemCheckedStateChanged(mode: ActionMode, position: Int,
                                          id: Long, checked: Boolean) {
                // Here you can do something when items are selected/de-selected,
                // such as update the title in the CAB
            }

            override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
                // Respond to clicks on the actions in the CAB
                return false
            }

            override fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean {
                // Inflate the menu for the CAB
                Log.d(TAG,"Inflating menu")
                mode.menuInflater.inflate(R.menu.delete_menu, menu)
                return true
            }

            override fun onDestroyActionMode(mode: ActionMode) {
                // Here you can make any necessary updates to the activity when
                // the CAB is removed. By default, selected items are deselected/unchecked.
            }

            override fun onPrepareActionMode(mode: ActionMode, menu: Menu): Boolean {
                // Here you can perform updates to the CAB due to
                // an invalidate() request
                return false
            }
        })
}


}

为简洁起见,我删除了数据库函数。日志操作模式永远不会被调用,onCreate语句也永远不会输出数据。

我的SiteAdapter类扩展了Baseadapter,返回的视图很好,而且显示得很好。我没有在我的siteadapter类中添加任何侦听器或类似的东西。只是长时间的点击什么都不会发生。有没有什么想法,比如我会做错什么?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-30 04:17:53

好吧,我选择了错误的模式。

用GridView.CHOICE_MODE_MULTIPLE代替GridView.CHOICE_MODE_MULTIPLE_MODAL

这个改变解决了最初的问题,并创建了一个新的问题,我想我应该在一个单独的线程上发布它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51108654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档