0

Я новый Android разработка. В моем приложении у меня есть два списка ArrayLists.Как отобразить два значения ArrayList в Android ListView?

One ArrayList содержит HashTbale. Другой содержит HashTable

Теперь Как я могу установить adpter и как показать в изображении Listview из Second ArrayList и Text From из ArrayList в ListView Row.

Я не могу получить точное решение.

Пожалуйста, помогите в этом вопросе.

Заранее спасибо

+0

если возможно, укажите более подробную информацию о значениях HashMap. Если возможно, я могу предложить вам объединить их в один хэш. Прост в обращении. –

+0

@PareshMayani Спасибо за ваш ответ. Мое требование в LIstView мне нужно показать изображение и текст. Но я не могу поддерживать оба в одном ArrayList Thats Почему я использую два arraylist. Но я не могу настроить adpter для listview, используя два ArrayLists. –

+0

Просто используйте HashMap arraylist, в котором хранятся оба пути изображения и ваш текст, и установите этот единственный ArrayList для вашего адаптера. Также вы можете сделать Custom ArrayList для своих требований. Просто google вы можете найти много примеров. – user370305

ответ

2

Если вы хотите отображать изображение и текст в каждой строке, и если вы используете 2 arraylist для того же, то вот решения. Попробуйте это

List<Integer> imageList = getImageList(); //list of drawable ids 
List<String> values = getValues(); 

class CustomAdapter extends BaseAdapter { 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return imageList.size();; 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // inflate the layout which contains imageview and textview which are aligned horizontally. 
     //Assuming you inflated layout and got imageView and textview from that layout 
     textView.setText(values.get(position)); 

     imageView.setImageResource(imageList.get(position)); 
     return convertView; 
    } 

} 

// Код не работает, если вы напрямую скопируете пасту. Используйте логику и соответственно измените

Вместо того, чтобы использовать 2 arraylist, я предлагаю использовать HashMap. Imagepath как ключ и текст как значение.

+0

Не стандартное решение, но оно работает. –

+0

@PareshMayani Я согласен. Но он хотел использовать 2 арраистов. так что только я дал это решение –

+0

, о том, если оба arraylist имеют разный размер. Или текст и изображение не связаны друг с другом? – user370305

2

первого Предложение: (не предлагается)

Вы знаете, как определить пользовательский адаптер для ListView? Если да, то вы можете легко передать два arraylist в свой пользовательский адаптер. А внутри getView() метода, вы можете отобразить любые детали, которые вы хотите в ListView

второе предложение: (Предлагаемое решение)

Если Вы делаете один ArrayList из CustomObject, то нет необходимости передавать два ArrayList в адаптере.

+0

Если он делает один ArrayList из CustomObject, тогда нет необходимости передавать два адаптера ArrayList в Adapter. – user370305

+0

@ user370305 thats идея, которую я пытался передать в моих предыдущих комментариях. –

+0

1-е предложение не работает, если оба arraylist имеют разный размер. Или текст и изображение не связаны друг с другом. – user370305

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