Comment puis-je afficher la date du calendrier sur le haut de messages de chat?
Je suis en train de travailler sur une application de chat, mais j'ai du mal à comprendre comment afficher la date du calendrier sur le haut de messages de chat, par exemple, quelque chose comme ceci:
Une autre image avec des horodatages:
Comme vous le voyez dans l'exemple, la date est affichée sur un nouveau lot de messages texte. Je voudrais faire la même chose, juste pour un lot de messages liés à une date spécifique. Dire si j'ai des messages pour le 19 octobre, il montre 19 octobre sur la partie supérieure, suivie par des messages pour les 20 octobre et ainsi de suite... Voici le travail de l'échantillon de code similaire à la mienne:
http://www.codeproject.com/Tips/897826/Designing-Android-Chat-Bubble-Chat-UI
La construction du code est la même que la mienne sauf pour la date affichée sur le dessus qui est quelque chose que je suis coincé sur. J'ai mon horodateurs indiquant, pour chaque message, je veux juste afficher la date dans le format "lundi, le 19 octobre 2015," pour le lot de messages; juste une fois en haut, depuis le 19 octobre, et de même les dates du calendrier pour le passé et l'avenir des messages, comme indiqué dans l'image. Des indices?
Merci!
- J'ai le temps, indiquant, pour chaque message que maintenant. Je veux faire 2 choses , 1) club les messages avec le même temps de concert, comme si il y a 3-4 messages envoyés à 7:54, il n'affiche que 7:54 au top pour le premier message pour le reste pas de temps sera affiché jusqu'à ce que les changements de dernière minute à 7:55 et la deuxième chose serait je voudrais afficher le jour de la conversation juste une fois tout en haut, comme si les messages étaient envoyés sur oct 10 puis il montre oct 10 sur la partie supérieure, suivie par des messages de oct 11 et ainsi de suite si tout, comme groupe, comme par le jour, un comportement similaire à la norme android natif de message texte
- pourriez-vous s'il vous plaît poster la mise en page que vous utilisez pour le message ?
- c'est dans l'exemple de code, elle est appelée list_tem_chat_message.xml c'est un très petit projet ,à seulement 3 fichiers java et 2 fichiers de mise en page
Vous devez vous connecter pour publier un commentaire.
Autant je comprends que vous souhaitez afficher l'heure/de la date uniquement pour certains groupes de messages, et non pour chaque message. Voici donc comment faire.
Condition: je suppose que chaque élément de message a horodatage sur la base duquel nous ferons de notre groupement
Idée: nous avons besoin de chaque élément de la liste à avoir timeview:TextView élément et nous allons vous montrer et cacher cet élément sur la base de sa position et de TS (time stamp)
Exemple:
item.xml
ChatRecyclerAdapter.java
ce qui vous reste plus qu'à créer votre RecylcerView et donnez-lui cette carte
Vilen réponse est juste. Je suis juste à l'amélioration de la performance. Au lieu de faire afficher disparu et visible pour chaque vue, on peut ajouter un affichage de texte par programmation lorsque la condition véritable.
ChatAdapter.java
Également le temps de mise en forme et de vérification pour chaque message est cher. Afin de minimiser cette exécution de code en fait, nous pouvons comparer l'horodatage lors de l'envoi du message. Obtenez de l'horodatage de la dernière message et le comparer avec le message en cours. Si elle est supérieure à 24 h, puis de l'envoyer au serveur avec isNewGroup:vrai. Puis le remplissage de la carte peuvent faire sans comparaison du temps comme ci-dessous.
Ok; c'est une solution qui vous donnera une idée à développer. Il permettra de résoudre vos problèmes de la date et vous donne une indication sur la façon de résoudre la façon dont vous affichez votre temps. Ce genre de programme implique beaucoup de travail pour le rendre viable comme une application. Vous avez besoin de prendre en compte les fuseaux horaires, où vous stocker les messages et ainsi de suite.
Maintenant débordement de pile ne sert pas le but de concevoir des programmes pour les gens, mais pour les aider et essayer de diriger les gens dans la bonne direction.
Pour répondre à votre question; je suis couvrant les bases, je ne suis pas vous donner le code prêt à fonctionner, vous aurez besoin pour faire le travail 🙂
Cela pourrait être résolu de plusieurs façons, j'ai choisi la suivante:
De l'utilisation partagée des préférences pour stocker la date limite de temps. J'ai envisagé de l'accès au chat en message tableaux, mais pensé que cela pourrait être plus simple. J'ai choisi partagé préférences de sorte que la date du dernier message serait conservé lorsque l'application est fermée et rouverte. (Finalement, le chat, les messages doivent être conservés dans une base de données [SQLite] de sorte que les messages seront toujours là quand l'application est fermée et ouverte). Veuillez voir mon commentaire à la fin.
Dans votre onclick écouteur, vous tester la dernière sauvegarde date est la date, si elle ne l'est pas, il est converti en un chatmessage, c'est donc la valeur peut être ajoutée au tableau et affiche. Vous allez avoir à modifier la façon dont vous définissez le format de ces types de messages, et vous pouvez même ajouter un id unique pour ces date de messages et de test pour que, ou test pour aucune id.. il y a de nombreuses solutions.
xml Ok, maintenant, vous ne voulez pas la date flottant en haut de l'écran quand il y a un seul message. Afin de les faire défiler la liste et définissez ce relative à la présentation de l'écran comme la seule liste a été. Un linéaire de la mise en page ne pour cela, il suffit de s'assurer de l'orientation est mis à la verticale.
Pin ces ensemble.
Changer l'affichage de chaque message Vous aurez besoin pour arrêter l'affichage de la date, l'heure de chaque message. Si vous souhaitez afficher l'heure de chaque message individuellement, et ignorer ceux dans la même minute, comme vous l'avez mentionné dans les commentaires, alors que je vous ai donné le cadre, à travailler sur la façon de tester pour cette et la logique du programme de si oui ou non il est affiché.
Vous avez besoin de le modifier dans votre:
N'oubliez pas d'appliquer toutes les importations nécessaires.
Je pense que si vous commencez à utiliser des bases de données que vous avez accès à la dernière date à partir de là sans partagée préférences, ou de continuer à utiliser les préférences. Cela devient plus compliqué, car il y a plusieurs chats sauvés, dans le cas où l'utilisation de la base de données serait préférable.
Il suffit de créer un viewgroup de messages au sein de cette date. Ou je recommanderais une structure comme ceci:
Utiliser ce xml, ce qui contribue à la création de mise en page que vous cherchez selon vos lien - la Conception d'Android Bulle de Chat (le Chat de l'INTERFACE utilisateur) suggèrent.
- Je mettre à jour ce code pour
date
texview:-