いくつかのアイテム(文字列)を備えたスピナーがあります。選択したアイテムをリストに追加したい。 onItemSelectedListener
ではなくonItemClickListener
を使用する必要があることをオンラインで読みました。
これを実装しましたが、リストに追加する手順を完了する方法がわかりません。
class NewKitListActivity : AppCompatActivity() {
var spinnerArray = arrayOf("Dumbell", "Punching Bag", "Yoga Ball", "Skipping Rope")
//var spinnerArray = arrayOf(DataService.kitList)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_new_kit_list)
val spinner = newKitItemSpinner
val spinnerArrayAdapter = ArrayAdapter<String>(this, Android.R.layout.simple_spinner_dropdown_item, spinnerArray)
//selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item)
spinner.adapter = spinnerArrayAdapter
spinner.onItemSelectedListener = object : OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
val selectedItem = parent.getItemAtPosition(position).toString()
if (selectedItem == "Add new category") {
// do your stuff
}
} // to close the onItemSelected
override fun onNothingSelected(parent: AdapterView<*>) {
}
}}}
ありがとう
(Kotlinで)このコードを使用:
yourSpinner?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onNothingSelected(parent: AdapterView<*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
}
}
おかげで、これは私にとっては役に立ちます。
daysSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(parent: AdapterView<*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
}
}
stringは、 '=='を使用してチェックできません。代わりに、equals( "string")を使用する必要があります。
if (selectedItem.equals("Add new category")) {
// do your stuff
}
このように実装しました。 1.空の可変リストを作成します2.スピナーでonItemSelectedListnerを設定します3.ユーザーがアイテムを選択したら、それを可変リストに追加します
詳細については、この回答を確認してください。 Android Koltinがスピナーの値を可変リストに渡す