当我在工具栏中写东西的时候,我需要过滤我的列表视图。
CustomList:这是一个有3个textView的布局。FullList:这是一个带有ListView
的活动
我从SQLite表填充FullList
FullList.kt:
override fun onCreate(savedInstanceState: Bundle?) {
...
setSupportActionBar(toolbar)
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
var listView = findViewById<ListView>(R.id.listView)
val customAdptor = CustomAdapterListView(this)
listView.adapter=customAdptor
}
class CustomAdapterBJCP(private val context: Activity): BaseAdapter(){
var db = DataBaseHandler(context)
var data = db.DataExample()
override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View {
val inflater = context.layoutInflater
val view1 = inflater.inflate(R.layout.CustomList,null)
var fName= view1.findViewById<TextView>(R.id.txtOne)
var FDetail= view1.findViewById<TextView>(R.id.txtTwo)
var fCount = view1.findViewById<TextView>(R.id.txtThree)
fName.text = data[p0].name
FDetail.text = data[p0].detail
fCount .text= data[p0].count
return view1
}
override fun getItem(p0: Int): Any {
return data.get(p0).name
}
override fun getItemId(p0: Int): Long {
return p0.toLong()
}
override fun getCount(): Int {
return data.size
}
}
为了搜索listView,我实现了一个菜单项:
<menu...>
<item android:id="@+id/action_search"
android:title="Search"
app:showAsAction="always|collapseActionView"
android:icon="@android:drawable/ic_menu_search"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
出于这个原因,我决定在FullList.kt中创建这个函数:
...
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_main,menu)
val searchItem = menu.findItem(R.id.action_search)
if(searchItem!=null){
val searchView=searchItem.actionView as SearchView
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener{
override fun onQueryTextSubmit(query: String?): Boolean {
return true
}
override fun onQueryTextChange(newText: String?): Boolean {
return true
}
})
}
return super.onCreateOptionsMenu(menu)
}
...
现在,我需要在搜索工具栏中放入一个单词,然后在ListView中查找该项目
我如何在Kotlin中做到这一点?
https://stackoverflow.com/questions/56535633
复制相似问题