2016-02-18 4 views
0

У меня есть структуры данных, которая имеет тип:я полностью озадачен, какой Android адаптер унаследовать/использовать

ArrayList<ArrayList<String>>; 

... Он содержит набор элементов ленты; каждый элемент сам является списком полей, и каждое поле является кортежем (ключ: значение), где оба значения ключа & имеют тип String.

ПРИМЕЧАНИЕ: поля причины хранятся в ArrayList, я не всегда знаю, сколько парсеров будет выходить из строя.

Вид:

<RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:id="@+id/news" 
     android:text="@string/news_and_events" 
     android:layout_row="6" 
     android:layout_column="4" 
     android:layout_columnSpan="3" 
     android:layout_rowSpan="3" 
     android:width="180dp" 
     android:height="245dp" 
     android:layout_marginBottom="10dp"> 

     <!--FEED--> 
     <ListView 
      android:id="@android:id/list" 
      android:layout_height="match_parent" 
      android:layout_width="match_parent" 
      /> 
    </RelativeLayout> 

Строка-шаблон Я хочу использовать это:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"  android:layout_height="match_parent"> 
<ImageView 
    android:id="@+id/picture" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginRight="6dip" 
    android:contentDescription="" 
    /> 

<!--STARTING WITH title--> 
<TextView 
    android:id="@+id/title" 
    android:layout_width="fill_parent" 
    android:layout_height="26dip" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_toRightOf="@id/picture" 
    android:ellipsize="marquee" 
    android:singleLine="true" 
    android:text="" 
    android:textSize="20sp" 
    /> 

<TextView 
    android:id="@+id/body" 
    android:layout_width="fill_parent" 
    android:layout_height="50dip" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" /> 
</RelativeLayout> 

Как вы можете видеть, что есть 3 поля: заголовок, тело, образ (лента новостей).

Таким образом, я полностью в тупике относительно того, какой тип адаптера я должен использовать. Все, на что я смотрел, похоже, не соответствуют тому, что я хочу делать; особенно из-за структуры данных, которую я использую.

Возможно, я должен использовать адаптер курсора? Если да, то как мне отобразить это в реляционной базе данных ?!

+1

Я бы рекомендовал реализовать свой собственный адаптер. Это не так сложно. Посмотрите на http://developer.android.com/reference/android/widget/BaseAdapter.html Там множество примеров, как реализовать пользовательский адаптер. – Sebastian

+0

Наследовать от ArrayAdapter и позволить слою данных анализировать ваши объекты, а не пользовательский интерфейс. – 323go

ответ

0

Я думаю, вы должны попробовать использовать BaseAdapter, это самый гибкий адаптер Android имеет (я думаю) ... Поступая таким образом, вы можете реализовать собственный адаптер, который идет через в ArrayList (с использованием 2-х циклов для извлечения), а затем разбор его на визуальные компоненты, которые вы указали. Поскольку это конструктор получает контекст, представление и данные, у вас будет ImageView и так, там.

+0

Я не знаю, почему это было приостановлено, но я согласен с тем, что нужно использовать BaseAdapter'. Он также является гибким с точки зрения источника данных, поэтому его можно изменить, чтобы при необходимости извлекать из базы данных, а не всегда полагаться на 'ArrayList'. – Kevin

+0

Не знаю ни ... Кто-то проснулся, рассердился сегодня lol – pamobo0609

Смежные вопросы