Не используйте ListView, используйте RecyclerView.
В адаптере у него есть отличный метод:
getItemViewType(int position);
Он по номеру элемента определяет, к какому виду относится этот элемент, и возвращает его числовой код. Код и реализацию этого метода нужно сделать вам самостоятельно.
Потом этот код подаётся (системой) в
createViewHolder(ViewGroup parent, int viewType)
В этом методе вы можете создавать нужный вам View из нужного layout. Не нужно этого:
if(!myIDfromList.equals(LV_USID)) {
layout.setGravity(Gravity.RIGHT);
layoutBg.setBackground(getResources().getDrawable(R.drawable.user_style_msg));
} else {
layout.setGravity(Gravity.LEFT);
layoutBg.setBackground(getResources().getDrawable(R.drawable.my_style_msg));
}
Просто сделайте два класса ViewHolder и разные layout для них.