I’m using Kotlin for a navigation search bar.
So, when I click a button from MainActivity it opens a new activity that enable a simple search can be found.
I’m really struggling as I have a number of errors in the code (I'm a newbe so please be gentle on me!).
The XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/lv_listView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tvemptyTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="No result"
android:textSize="20sp"
android:visibility="gone" />
</RelativeLayout>
The search code (I've shown the errors within the code:
class SearchActivity : AppCompatActivity() {
private lateinit var adapter: ArrayAdapter<*>
override fun onCreate(savedInstanceState: Bundle?) {
Log.d("TAG", "SearchActivity 1 JEZ")
super.onCreate(savedInstanceState)
setContentView(R.layout.search_main)
adapter = ArrayAdapter(
this,
android.R.layout.simple_list_item_1,
resources.getStringArray(R.array.vegetables)
)
lv_listView.adapter = adapter
lv_listView.onItemClickListener =
AdapterView.OnItemClickListener { parent, view, position, id ->
Toast.makeText(
applicationContext,
parent?.getItemAtPosition(position).toString(),
Toast.LENGTH_SHORT
).show()
}
lv_listView.emptyView = tvemptyTextView
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.nav_menu,menu) /* ERROR: Unresolved reference: menu */
return super.onCreateOptionsMenu(menu)
val search: MenuItem? = menu?.findItem(R.id.nav_search) /* Unresolved reference: nav_search */
val searchView: SearchView = search?.actionView as SearchView
searchView.queryHint = "search something"
/* Plus a number of errors in this section (which I think maybe related to the earlier problem?)ln assuming : object is not abstract.../Conflicting overload.../ */
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
return false
}
override fun onQueryTextSubmit(newText: String?): Boolean {
adapter.filter.filter(newText)
return true
}
})
return super.onCreateOptionsMenu(menu)
}
}
If I've missed any bits out then I'll add in.
As I've been struggling on this for a few days now, so any help would be great! Cheers