I am almost done making a android chat application. I have managed to set up the database, the PHP Scripts for my backend and have also made a large part of the app. In it I am using a DefaultHttpClient to get all the messages as JSON objects and then I store the messages and the name of the person who has sent the message in two different arrays... I check for new messages every 3 seconds and update my arrays (I know this may not be the best way to make such an app, but I'm just starting of with java and android). Over here I face my first problem... 

How should I display my arrays?


Right now, as my app stands, I just take the arrays and set a custom list view. But this is a problem because, since I am updating my ListAdapter every 3 seconds, the list view flickers every 3 seconds... What i want to do is just append the array of new messages at the end of my listview. How do you do this... If someone could point me to a good resourse or better, tell me here, it would be amazing...


My second question: How can I invert my list view?



What I mean to say is that, like on any messaging app (Whatsapp, Viber, Messenger) all the new messages appear at the bottom of list and the list itself is always scrolled to the bottom, always... But this is not what the list view is like by default... It is at the top and you scroll down but I want it to be down and the user can scroll up to view all the previous messages

My third question: What would be a better and correct way to make a chat application?


If you want to view any of my code you can ask... But I'm completely off track and have no idea how to solve these problems... 
Thanks!