2016-12-18 4 views
0

Я пытаюсь создать адаптер для отображения 2 списков в одном списке. списки должны быть разделены изображением. Это идея XML.2 списка из 1 listview android

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="horizontal" > 

<TextView 
    android:id="@+id/Itemname" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="20sp" 
    android:layout_gravity="left" 
    android:paddingTop="5dp"/> 

<ImageView 
    android:id="@+id/icon" 
    android:layout_width="50dp" 
    android:layout_height="50dp" 
    android:layout_marginBottom="5dp" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="5dp" 
    android:layout_marginTop="5dp" 
    android:layout_gravity="center" 
    android:src="@mipmap/ic_launcher" /> 

<TextView 
    android:id="@+id/Itemname2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="20sp" 
    android:layout_gravity="right" 
    android:paddingTop="5dp"/> 

Я считаю, что сложно писать пользовательские адаптеры, так что любая помощь приветствуется.

+0

Почему бы не просто использовать 2 ListViews с ImageView между ними? –

ответ

0

Вам нужно будет написать собственный адаптер, просто откройте класс ArrayAdapter и заполните методы переопределения.

Это просто быстрый пример (это не полный)

public class MyAdapter extends ArrayAdapter { 

private List list_one; 
private List list_two; 

public MyAdapter(Context context, int resource, int textViewResourceId, List objects1, List objects2) { 
    super(context, resource, textViewResourceId, objects1); 
    this.list_one = objects1; 
    this.list_two = objects2; 
} 

@Override 
public int getCount() { 
    //here you return the count of items your list will display 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 
    LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    v = inflater.inflate(R.layout.xml_file_name, parent); 
    TextView item1 = (TextView) v.findViewById(R.id.Itemname); 
    TextView item2 = (TextView) v.findViewById(R.id.Itemname2); 
    ImageView imageView = (ImageView) v.findViewById(R.id.icon); 

    item1.setText(list_one.get(position)); 
    item2.setText(list_two.get(position)); 
    imageView.setImageResource(/*not really sure where you will be getting your image from*/); 

    return v; 
} 
} 
0

Хотя я не совсем понимаю, что вы пытаетесь сделать, вот что я понимаю: У вас есть два списка, и вы хотите использовать соответствующие данные из двух списков, которые будут показаны в одном элементе ListView.

Если это действительно то, что вы пытаетесь сделать, создайте третью модель данных, представляющую модель данных, которая будет отображаться в каждом элементе ListView, и используйте ArrayList этой модели, чтобы заполнить элементы Посмотреть список.

Надеюсь, что это поможет. Удачи :)

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

  • Нет связанных вопросов^_^