首页 > 解决方案 > Spinner 不显示项目。我现在正在制作盘点程序。我从 API 获取数据。我有问题。微调器不显示项目

问题描述

Spinner 不显示项目。我现在正在制作盘点程序。我从 API 获取数据。我有问题。微调器不显示项目。我将项目添加到 ArrayList,然后将此列表添加到微调器适配器。我已经尝试了很多在 stackoverflow 和其他网站上发现的东西。但没有什么能帮助我。

代码:

activity_add_classes.xml:

<pre><code>

<TextView
    android:id="@+id/add_class_label"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Добавить кабинет"
    android:textAlignment="center"
    android:textColor="@color/black"
    android:textSize="25sp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_marginTop="25dp"
    />

<EditText
    android:id="@+id/class_number_add"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toBottomOf="@id/add_class_label"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    android:layout_margin="16dp"
    android:hint="Номер класса"
    android:textSize="20sp"
    android:singleLine="true"
    android:maxLength="3"
    android:digits="1234567890"
    />

<Spinner
    android:id="@+id/corps_spinner"
    app:layout_constraintTop_toBottomOf="@id/class_number_add"
    app:layout_constraintEnd_toEndOf="parent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/corps"
    app:layout_constraintStart_toStartOf="parent"
    android:layout_margin="16dp"
    />
<Spinner
    android:id="@+id/inventories_spinner"
    android:layout_width="match_parent"
    android:layout_height="75dp"
    app:layout_constraintTop_toBottomOf="@id/corps_spinner"
    app:layout_constraintStart_toStartOf="parent"
    android:layout_margin="16dp"
    android:spinnerMode="dropdown"
    app:layout_constraintEnd_toEndOf="parent"
    />
<EditText
    android:id="@+id/count_of_inventory"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toBottomOf="@id/inventories_spinner"
    app:layout_constraintStart_toStartOf="parent"
    android:layout_margin="16dp"
    android:maxLength="2"
    android:digits="1234567890"
    android:singleLine="true"
    />
<Button
    android:id="@+id/add_inventory_list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Добавить"
    app:layout_constraintTop_toBottomOf="@id/inventories_spinner"
    android:layout_margin="16dp"
    app:layout_constraintEnd_toEndOf="parent"
    />



AddClassesActivity.kt:

    enter code here

package com.example.inventorizationmpt



class AddClassesActivity : AppCompatActivity() {

    lateinit var inventoriesSpinner: Spinner
    lateinit var listInventory : ArrayList

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_add_classes)
        listInventory = ArrayList()
        inventoriesSpinner = findViewById(R.id.inventories_spinner)
        getInventories()
        spinAdapt()

    }

    fun spinAdapt(){
        val spinnerAdapter = ArrayAdapter(this@AddClassesActivity, android.R.layout.simple_spinner_item,listInventory)
        spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
        spinnerAdapter.notifyDataSetChanged()
        inventoriesSpinner.adapter = spinnerAdapter
    }

    fun getInventories(){

        val inventorizationService = ServiceBuilder.buildService(InventorizationService::class.java)
        val requestCall = inventorizationService.getInventoriesList()
        requestCall.enqueue(object : Callback>{
            override fun onResponse(
                call: Call>,
                response: Response>
            ) {
                if (response.isSuccessful){

                    val listForSpinner = response!!.body()
                    for (i in 0..listForSpinner!!.size - 1){

                        listInventory.add(
                            ItemOfInventory(
                                listForSpinner[i].id_Inventory,
                                listForSpinner[i].inventory_Name
                            )
                        )

                    }

                }else {
                    Toast.makeText(this@AddClassesActivity, "Что-то пошло не так. Ошибка со стороны сервера", Toast.LENGTH_LONG).show()
                }
            }

            override fun onFailure(call: Call>, t: Throwable) {
                Toast.makeText(this@AddClassesActivity, "Что-то пошло не так. Ошибка со стороны сервера", Toast.LENGTH_LONG).show()
            }

        })

    }

}

    

标签: androidapiandroid-studiokotlinspinner

解决方案


推荐阅读