Android Studio & Kotlin: изменение программно добавленных изображений в виде списка - PullRequest
0 голосов
/ 20 февраля 2020

Привет, коллеги-программисты,

Я просто программировал в listView и реализовывал действия для прикосновения к элементу списка, пока не добрался до точки, где я хотел сохранить рекурсивные вещи. Взяв этот ClickListener, я бы хотел, чтобы изображение рядом с элементом списка изменялось при нажатии.

list.add(Model("firstelement","description 1", R.drawable.button_activated))
list.add(Model("secondelement","description 2",R.drawable.button_activated))
listview.adapter = MyAdapter(this, R.layout.row, list)
var elementArray: IntArray = intArrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)

        listview.setOnItemClickListener{ parent: AdapterView<*>, view: View, position:Int, id: Long ->
            val currentimage = ? //here I'd like to retrieve the imageview of the tapped list item
            val img: ImageView = findViewById(R.id.currentimage)
            if (elementArray.get(position)==0){
                img.setImageResource(R.drawable.button_activated)
                elementArray.set(position,1)
            }
            else if (elementArray.get(position)==1){
                img.setImageResource(R.drawable.button_dectivated)
                elementArray.set(position,0)

Изображения добавляются в список вместе с текстовым представлением. Как я могу получить их, чтобы изменить их? Пробовал listview.getItemIdAtPosition, но это приводит к ошибкам.

Бьюсь об заклад, есть способ - я просто не вижу его. Заранее благодарен за любую подсказку!

Кроме того, вот строка моего макета. xml, в которую загружается список:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:padding="16dp"
>

    <ImageView
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:id="@+id/image0"
        android:src="@mipmap/ic_launcher"
    />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
    >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/textView1"
            android:text="first element"
            android:textStyle="bold"
            android:textSize="20sp"
            android:layout_margin="5dp"
            android:textColor="#000"
        />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textView2"
            android:text="second element"
            android:textSize="18sp"
            android:layout_margin="5dp"
            android:textColor="#a9a9a9"
        />
    </LinearLayout>

</LinearLayout>

1 Ответ

0 голосов
/ 21 февраля 2020

Только что решил это самостоятельно с помощью этого решения: Android: динамически изменить изображение в Listview

Пришлось получить доступ к нижнему изображению ViewView текущего представления: ImageView = view.findViewById(R.id.image)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...