2016-11-10 4 views
0

Я разрабатываю приложение в Котлине (если вы не знаете о kotlin, я уверен, что вы все равно можете помочь с вашим опытом Android/Java)Android Spinner не отвечает за клики, не закрывается и OnItemSelectedListener не запускает

Детали:

у меня есть Spinner в там мой app.Though он не реагирует на нажатия, когда он всплывает и даже показывает некоторые странные взгляды. И из-за этого прослушиватель OnItemSelected также не запускается.

Я запускаю метод для обновления счетчика от вызова AsyncRealm.

Вот код:

Вся эта функция работает, вертушка не равно нулю, после прикрепления слушателя, он больше не является нулевой либо (при отладке).

private fun updateCategorySpinner(result: MutableList<Category>) { 
     info("updateCategorySpinner") 
     val arrayAdapter: ArrayAdapter<String> = ArrayAdapter(ctx, R.layout.spinner_item, result.map{ it.category }) 
     arrayAdapter.setDropDownViewResource(R.layout.spinner_item) 
     arrayAdapter.notifyDataSetChanged() 
     categorySpinner.adapter = arrayAdapter 
     info("updateCategorySpinner done") 
    } 

result.map {..} создает MutableList с названиями категорий.

Проблема:

Я понятия не имею, почему есть эти стрелки, но независимо от того, какая раскладка я использовать (даже если только простой TextView) они там

нет Что я упускаю Вот?

Отключение слушателя не помогает.

Прикрепление слушателя с помощью Anko не помогает.

Слушатель запускается один раз, когда он инициализируется, вот и все.

Как только раскрывающееся меню открывается, оно полностью застряло.

Я создаю свои взгляды с помощью Anko.

R.layout.spinner-item всего лишь <Textview>.

class AddTodoFragmentUi:AnkoComponent<ViewGroup>,AnkoLogger { 
    override fun createView(ui: AnkoContext<ViewGroup>): View { 
     val editTextTheme = R.style.Widget_AppCompat_EditText 

     return with(ui){ 
      verticalLayout { 
       info("inVerticalLayout") 
       verticalPadding =dip(15) 
       gravity = Gravity.CENTER 
       editText(editTextTheme){ 
        id = R.id.txt_todo_desc 
        hintResource = R.string.txt_todo_desc_hint 
        width = matchParent 

       } 
       spinner(R.style.Widget_AppCompat_Spinner){ 
        id= R.id.spinner_todo_category 
        prompt = "Select a Category" 
       } 
       button{ 
        id = R.id.btn_add_todo 
        textResource = R.string.btn_add_todo 
        width = matchParent 

       } 
       button{ 
        id = R.id.btn_del_todo 
        textResource = R.string.btn_del_todo 
        width = matchParent 
        visibility = View.INVISIBLE 

       } 

      }.applyRecursively {view -> when(view){ 
       is EditText -> view.textSize = 20f 
       is Button -> view.textSize = 30f 
      } 
      } 
     } 
    } 

изображение:

Spinner Dropped-down

+0

(«Я разрабатываю приложение в Котлине (очень читаемый, даже если вы этого не знаете) сильное утверждение, учитывая, что код, который вы представляете, не комментируется, или« он »ссылается на _Kotlin_, а не на ваш приложение). – greybeard

+0

это действительно относится к Kotlin. Я не давал ссылку на все приложение, а также код, который я представил, довольно объяснительный. Это всего лишь Android SDK. –

ответ

0

Итак, проблема не-отзывчивости была с установкой вращателя тему Widget_app_compact.

spinner(R.style.Widget_AppCompat_Spinner){ 
        id= R.id.spinner_todo_category 
        prompt = "Select a Category" 

Извлечь его решает проблему.

Не теряйте два дня, как я это сделал, пожалуйста: D.