получить последнюю позицию в списке массивов перед прерыванием полосы

#android #arrays #arraylist #android-recyclerview

#Android #массивы #список массивов #android-recyclerview

Вопрос:

https://www.google.com/search ?q=message image on lastamp;sxsrf=ALeKk01qNrLQ61yRXCMSPRxyNaoI0MF_kA:1605295893515amp;source=lnmsamp;tbm=ischamp;sa=Xamp;ved=2ahUKEwjj2veboYDtAhWeIbcAHebnB4QQ_AUoAXoECAwQAwamp;biw=1366amp;bih=657#imgrc=wzgnznL_g7kUsM

Я хочу показывать изображение профиля, как показано в приведенной выше ссылке, только в последнем сообщении каждого последовательного сообщения от одного и того же человека. Пожалуйста, помогите мне с этим.

Я перепробовал много способов, но я не знаю, как скрыть видимость верхних изображений

 if (position > 0) { 
if (messageList.get(i).getFrom.equalsIgnoreCase(messagesList.get(position - 1).getFrom())) 
{ 
    viewHolder.mProfileImage.setVisibility(View.INVISIBLE); 
} 
else 
{ 
    viewHolder.mProfileImage.setVisibility(View.VISIBLE); 
} 
} 
else 
{ 
viewHolder.mProfileImage.setVisibility(View.VISIBLE); 
} 
 

Я использовал приведенный выше код и получил этот результат, который показан в этом http://i.stack.imgur.com/92SUb.jpg ссылка. С помощью этого кода я могу скрыть все изображения, отличные от первого изображения. не могли бы вы показать мне, как скрыть изображение верхнего сообщения, а не последнего из streak.

Комментарии:

1. Пожалуйста, добавьте код вашей функции bindViewHolder или полный класс адаптера

2. Bindviewholder содержит в основном этот код для достижения вышеуказанного результата

3. Я использую приведенный выше код, чтобы скрыть изображения из позиции, где getfrom равно getfrom-1 означает, что я оставил только первую позицию, где getfrom равно getfrom, а затем break, а затем снова выполняется тот же код

4. Что я понял из вашего вопроса, так это то, что вам нужно показывать profileImage только тогда, когда это последнее сообщение в строке. Но вы специально в своем коде показываете изображение профиля в первом элементе списка. Я не знаю, содержит ли ваш список сообщений все сообщения или только строку сообщений.

5. если (позиция> 0) { } else {ViewHolder.mProfileImage.setVisibility(Просмотр. ВИДИМАЯ); } другая часть здесь означает, что вы хотите показать изображение профиля в первом сообщении списка.

Ответ №1:

Я должен предположить несколько вещей в моем ответе. т.е.

  1. MessageList — это список всех сообщений. не список только последовательных / последовательных сообщений.
  2. вам нужно показать изображения профиля как для отправителя, так и для получателя.
  3. И вы хотите показывать только изображение профиля последнего последовательного сообщения.

Итак, вот что вы должны сделать.

 int length = messageList.lenght; //getTotalLenght;
String fromCurrent = messageList[position].getFrom(); //getFrom of current message being painted or shown
String fromNext = fromCurrent; //next message is set to current by default, to avoid error
if(length > postition 1) {
    fromNext = messageList[position 1].getFrom(); //if there is next message then get its sender but if it is the last message then nextSender and currentSender are same as I set its default value to the currentSender.
}
console.log("TAG", "FromNext: "   fromNext);
console.log("TAG", "FromCurrent: "   fromCurrent);
if(!fromCurrent.equals(fromNext)) { //checking if last message or not
    viewHolder.mProfileImage.setVisibility(View.VISIBLE); 
}
else {
    viewHolder.mProfileImage.setVisibility(View.INVISIBLE); 
}
 

Комментарии:

1. да, список сообщений содержит все сообщения, и вы правильно поняли мой вопрос, но из вашего кода проблема в том, что он скрывает изображение только из последней позиции списка сообщений, а не из последовательного сообщения. Пожалуйста, посмотрите Вывод по этой ссылке: i.stack.imgur.com/h1BPD.jpg в этой ссылке я также хочу скрыть изображение с сообщением 112.

2. Мой код показывает только изображение последней позиции последовательного сообщения и скрывает все остальные изображения.

3. Вы хотите показать только первое изображение последовательного сообщения?

4. с помощью моего кода я получил первое изображение последовательного сообщения, но в вашем коде не отображается изображение последней позиции последовательного сообщения, а отображается только изображение в последней позиции списка сообщений

5. i.stack.imgur.com/h1BPD.jpg как вы можете видеть на этом изображении, ваш код скрывает изображение только в последней позиции адаптера, а не в другой последней позиции последовательного сообщения, например, я также хочу скрыть изображение с сообщением 112