Kotlin: ArrayAdapter со сложными данными - PullRequest
0 голосов
/ 09 января 2019

Я хочу сделать это:

  1. Отображение списка элементов в виде списка (сделано)
  2. Установить фон для четной нечетной позиции (готово)
  3. При нажатии на элемент переключайте подэлементы, связанные с выбранным элементом.

Как вы знаете, ArrayAdapter по умолчанию работает только с TextView (как корневой элемент).

Так как я могу этого достичь? (Я видел этот , но все еще требуется TextView после изменений).

Вот мой пользовательский адаптер:

    class ListAdapterScolaire (context: Context, resource: Int, list: ArrayList<String>, private val arguments: Bundle?, private val forScol : Boolean) : ArrayAdapter<String>(context, resource, list) {

    private val TAG = ListAdapterScolaire::class.java.simpleName

    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
        val view = super.getView(position, convertView, parent)

        val arret = view.findViewById<TextView>(R.id.arret)
//        val rootView = view.findViewById<LinearLayout>(R.id.root_View)
//
//        val list = getViewsByTag(rootView, "toToggleAction")
//
//        list.forEach{it ->
//            it.setOnClickListener{ v: View ->
//                val viewParent = v.parent
//                if (viewParent is LinearLayout) {
//                    val taggedView : View? = viewParent.findViewWithTag<View>("toToggle")
//
//                    taggedView?.visibility = when {
//                        taggedView?.visibility == View.GONE -> View.VISIBLE
//                        else -> View.GONE
//                    }
//                }
//            }
//        }


        arret.setOnClickListener { //part to code for the toggle
    }

        if (position % 2 == 1) {
            view.setBackgroundResource(R.color.colorWhite)
        } else {
            view.setBackgroundResource(R.color.grayBackground)
        }
        return view
    }

Как я это называю в моем коде:

adapterScolaire = ListAdapterScolaire(view.context, R.layout.list_adapter, lignesScolaires, resultArgument, true)

И мой xml для моего предмета:

    <?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/arret"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:background="?android:attr/activatedBackgroundIndicator"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:layout_margin="0dp"
    android:text="Nom arret"

    />
...