Android Studio 错误的ActivitySearchBinding,需要setContentView(binding.root)

rt4zxlrg  于 11个月前  发布在  Android
关注(0)|答案(1)|浏览(116)

我希望这个搜索类在数据库中搜索用户,我把一些我经常使用的函数放在一个抽象类中,比如“AbsBottom”,它扩展了“AppCompactActivity”。
除了扩展类,我什么都没做,它与旧类完美配合,但是当我将其更改为更新后的类时,它会出错。
这是更新后的类

class SearchActivity : AbsBottom(R.layout.activity_search, R.id.bottomNav, R.id.search_nav) {

    private var user = mutableListOf(UserSearch()) 
        private var userAdapter = UserViewHolder()
        lateinit var binding: ActivitySearchBinding

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            binding = ActivitySearchBinding.inflate(layoutInflater)
            //setContentView(binding.root)
            //layout
            binding.recyclerProfile.setHasFixedSize(true)
            val llm = LinearLayoutManager(this)
            llm.orientation = LinearLayoutManager.VERTICAL
            binding.recyclerProfile.layoutManager = llm
            
            //region Adapter Setup
            binding.recyclerProfile.adapter = userAdapter
            binding.searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
                override fun onQueryTextSubmit(query: String?): Boolean {
            //do stuff
                }

                override fun onQueryTextChange(newText: String?): Boolean {
            //do other stuff
                }

            })
            //endregion
    }
}

字符串
这是原来的

class SearchActivity : AppCompatActivity() {

        private var user = mutableListOf(UserSearch())
        private var userAdapter = UserViewHolder()
        lateinit var binding: ActivitySearchBinding

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            binding = ActivitySearchBinding.inflate(layoutInflater)
            setContentView(binding.root)

            bottomNavigation()
            //layout
            binding.recyclerProfile.setHasFixedSize(true)
            val llm = LinearLayoutManager(this)
            llm.orientation = LinearLayoutManager.VERTICAL

            binding.recyclerProfile.layoutManager = llm
            // userAdapter.setUsers(user)

            //region Adapter Setup
            binding.recyclerProfile.adapter = userAdapter
            binding.searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
                override fun onQueryTextSubmit(query: String?): Boolean {
            //do stuff
                }

                override fun onQueryTextChange(newText: String?): Boolean {
            //do other stuff
                }

            })
            //endregion
    }
}


这就是抽象类的样子

abstract class AbsBottom(val idC: Int, val idB: Int, val ac: Int) : AppCompatActivity() {
    protected lateinit var bottomNav : BottomNavigationView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(idC)
        bottomNav = findViewById(idB)
        bottomNav.selectedItemId = ac
    
    //etc
    }
}


这个错误并没有说明太多,它说它看不到userAdapter,因此它没有加载搜索到的用户列表

o2g1uqev

o2g1uqev1#

修复了问题,注解了行

//setContentView(binding.root)

字符串
打破了束缚。

相关问题