Для любой банковской операции в принципе все равно на то, в какой валюте карточка. Просто будет проведена конвертация. С которой банк может брать процент.
Смотреть надо в первую очередь на то, в какой валюте вам надо делать выписки из банка (и надо ли). Если вы например предприниматель - это может быть важно для налоговой (подробностей не могу указать).
Про виртуальные карточки - обычно можно.
БД на удаленном сервере? Тогда вам нужен бекенд и апи к нему. Напрямую подключаться к базе на удаленном сервере через андроид приложение - плохо.
В остальном - все верно. Бекенд из базы достает путь к картинке, и отдает этот файл андроиду.
Если вы про ID - то ID должен быть уникален в рамках данного корневого элемента. Например - активити. В нем не может быть view с одинаковыми ID - иначе findViewByID не сможет работать. Но в двух разных активити дублировать ID можно.
В общем решение нашлось само собой. В коде было два неочевидных момента:
1) Чайлды групп ExpandableListView кешировались
2) Создание ComboBox требовало создания чайлда (который кешировался) на том этапе, когда еще групп как таковых нет - в onCreate активити.
Переделав эти две вещи проблема исчезла сама собой.
Самый простой вариант - каждой кнопке добавляете tag (setTag), в котором указываете ID строки списка, в которой надо поменять цвет.
В clickListener достаете этот самый tag (getTag), зная его достаете строку списка, ну дальше уже делаете с ним что хотите.