Как получить доступ к представлению внутри другого класса, используя привязку представления Kotlins - PullRequest
0 голосов
/ 14 апреля 2019

В настоящее время я следую учебному пособию по RecyclerView, которое «написано» на Java.Сейчас я пытаюсь взять учебник и написать его на Kotlin.Теперь я хочу получить доступ к представлениям из layout_listitem.xml (который в основном просто описывает структуру одного элемента в представлении реселлера) из отдельно созданного класса "RecyclerViewAdapter".

Предполагается, что это на самом деле не работает с отдельнымXML-файлы или это реальная проблема?

PS: я также пытался использовать "import kotlinx.android.synthetic.main.layout_listitem. *", но, похоже, это тоже не сработало.

RecyclerViewAdapter

package com.gmail.mynamepackage.recyclerviewdemo
import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.View
import android.view.ViewGroup

class RecyclerViewAdapter : RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {

   //In this complete class i am not able to access the views directly
}

layout_listitem.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="15dp"
                android:id="@+id/parentLayout">

    <de.hdodenhof.circleimageview.CircleImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/image"
            android:src="@mipmap/ic_launcher"/>
    <TextView android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Canada"
want to acc:  android:id="@+id/image_name"
              android:layout_toRightOf="@+id/image"
              android:textColor="#000"
              android:layout_centerVertical="true"
              android:layout_marginLeft="58dp"
              android:textSize="17sp"
    />
</RelativeLayout>

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Итак, в общем, что случилось, я заглянул в класс RecyclerView и случайно обнаружил поле itemView, которое в основном позволяет получить доступ к представлениям ваших узлов RecyclerView.

0 голосов
/ 14 апреля 2019

Попробуйте import kotlinx.android.synthetic.main.layout_listitem.view.*

Если мы хотим вызвать синтетические свойства для View, мы должны также импортировать view.*.

...