Есть ListView
в котором отображается история сообщений.
Так же есть SimpleAdapter
adapter = new SimpleAdapter(getContext(), messageList, R.layout.left_item,
new String[] { "text", "time" }, new int[] {R.id.messageText, R.id.timeText });
messageListView.setAdapter(adapter);
Сейчас в ListView добавляется соответственно R.layout.left_item
Вопрос:
Как можно добавить R.layout_right_item
вместо R.layout_left_item
Сейчас добавляю сообщения так.
public void addMessageLeft(String text, String time) {
HashMap<String, String> message = new HashMap<>();
message.put("text", text);
message.put("time", time);
messageList.add(message);
}
Где messageList
является ArrayList<HashMap<String, String>>
.
Пробовал задать новый адаптер, но тогда все предыдущие левые сообщения заменяются на правые.
Ещё пробовал использовать adapter.setDropDownViewResource(R.layout.right_item);
но я так понял это тут не поможет.
Для решения этой проблемы, пришлось полностью скопировать код класса SimpleApapter в новый класс, т.к private View createViewFromResource()
нельзя переопределить.
Изменения которые я внёс:
Добавил поле
private ArrayList<Integer> mArrayList;
Дополнил конструктор:
public MessageAdapter(Context context, List<? extends Map<String, ?>> data,
@LayoutRes int resource, String[] from, @IdRes int[] to, ArrayList<Integer> arrayList) {
mData = data;
mResource = mDropDownResource = resource;
mFrom = from;
mTo = to;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mArrayList = arrayList;
}
Изменил метод getView()
:
public View getView(int position, View convertView, ViewGroup parent) {
return createViewFromResource(mInflater, position, convertView, parent,
mArrayList.get(position) == 0 ? R.layout.left_item : R.layout.right_item);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Читал я и про Apache POI и про jexcelapi,и про jdbc способ, про всё это читал, но ни где,повторяюсь нигде, не нашел годного гайда или туториала,или примеров...
Проблема в том, что в строке содержится знак процента, из чего появляются лишние символы: 25Как их убрать, ума не приложу
Как сделать чтобы программа заработала и вывела информацию о том в кокой ориентации у тебя находится экран смартфона , если уже создал функцию...