@lukinov93
Веб разработчик, линуксоид

Как получить объект ImageView внутри ExpandableListView?

Здравствуйте. Недавно столкнулся с проблемой получения объекта класса ImageView внутри элемента кастомного списка ExpandableListView. Беда заключается в том что приложение неожиданно закрывается при попытке открытии группы с элементом списка. Элемент создается из ресурса при помощи LayoutInflater.

Вот проблемный код кастомного адаптера:
@Override
public View getChildView(int groupIndex, int childIndex, boolean b, View view, ViewGroup parent) {
        // inflater - приватное поле адаптера
	View v = inflater.inflate(R.layout.device_functions, parent, false);
	ImageView filesIcon = (ImageView)v.findViewById(R.id.filesIcon);
	
	return v;
}


Причем это касается именно ImageView. Если например поместить в ресурс TextView и попытаться вместо ImageView получить его, то проблем не возникает.

Привожу код ресурса:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/filesIcon"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="20dp"
    android:layout_marginTop="20dp"
    android:background="@color/BLACK"
    android:gravity="center"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/filesIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/file" />

    <ImageView
        android:id="@+id/messagesIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:src="@drawable/message" />

    <ImageView
        android:id="@+id/camerasIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:src="@drawable/camera" />

</LinearLayout>


Если код метода getChildView обернуть в try/catch, то обработчик вернет следующее сообщение, цитирую: "android.widget.LinearLayout".

Буду признателен за помощь. Спасибо.
  • Вопрос задан
  • 2559 просмотров
Решения вопроса 1
@dr_yand
LinearLayout xmlns:android="schemas.android.com/apk/res/android"
android:id="@+id/filesIcon"

ImageView
android:id="@+id/filesIcon"

А почему одинаковые id ?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
aratj
@aratj
программер.
вот именно, одинаковые ID.
в этом случае по findViewById возвращается первый попавшийся.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы