【发布时间】:2022-01-22 22:03:12
【问题描述】:
目前我正在使用一个字符串数组来保存我的适配器使用的一些数据,但我需要使用列表中的数据:
目前我正在使用这个:
<string-array name="vegetables">
<item> Onion </item>
<item> Chillis </item>
<item> Tomatoes </item>
<item> Garlic Beans</item>
这是我需要使用的数据格式:
val VegName = listOf(
Veg(0, "Onion", R.drawable.onion),
Veg(1, "Chillis", R.drawable.chilli),
Veg(2, "Tomatoes (indoor)", R.drawable.tomatoe),
Veg(3, "Garlic", R.drawable.garlic)
)
适配器代码:
class SearchActivity : AppCompatActivity() {
private lateinit var toolbar: Toolbar
lateinit var adapter: ArrayAdapter<*>
private lateinit var listView: ListView
private lateinit var emptyView: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.search_main)
title = "Search Veg"
toolbar = findViewById(R.id.toolbar)
listView = findViewById(R.id.listView)
emptyView = findViewById(R.id.emptyView)
adapter = ArrayAdapter<Any?>(this, android.R.layout.simple_list_item_1,
resources.getStringArray(R.array.vegetables))
adapter = ArrayAdapter<Any?>(this, android.R.layout.simple_list_item_1,
resources.getStringArray(R.array.vegetables)) // I THINK THIS IS WHERE IT NEEDS CHANGING?
listView.adapter = adapter
listView.onItemClickListener = OnItemClickListener { adapterView, _, i, _ ->
Toast.makeText(this@SearchActivity, adapterView.getItemAtPosition(i).toString(),
Toast.LENGTH_SHORT).show()
}
listView.emptyView = emptyView
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.nav_menu, menu)
menuInflater.inflate(R.menu.menu, menu)
val search = menu.findItem(R.id.appSearchBar)
val searchView : SearchView? = search?.actionView as SearchView?
searchView?.queryHint = "Search"
listView.setOnItemClickListener(OnItemClickListener { parent, view, position, id ->
val intent = Intent()
val theItemClicked = String()
Toast.makeText(this@SearchActivity, listView.getItemAtPosition(position).toString(),
Toast.LENGTH_SHORT).show()
intent.putExtra("result", listView.getItemAtPosition(position).toString() )
intent.putExtra("position", position.toString())
setResult(RESULT_OK, intent)
finish()
})
searchView?.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
return false
}
override fun onQueryTextChange(newText: String?): Boolean {
adapter.filter.filter(newText)
return true
}
})
return super.onCreateOptionsMenu(menu)
}
}
非常感谢任何有关更改数据格式的帮助!
干杯
【问题讨论】:
-
您可能会问的三个不同问题的三个很好的答案。不是很清楚。
标签: android arrays list android-studio kotlin