andyADD
andyADD

Reputation: 610

Listview adding to the same line

I have an android app that lists connected clients in a listview, but whenever someone connects, it just adds them to the same line, this is the code I use to add connected client. I am new to listview, and not sure how to do this properly, I looked at the android docs but hard to say what needs to be used. If anyone can help me out that would be great.

remoteip += socket.getInetAddress();

ArrayList<String> addclientlist = new ArrayList<String>();

ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainserverActivity.this,
android.R.layout.simple_list_item_1, android.R.id.text1, addclientlist);

addclientlist.add(remoteip);
adapter.notifyDataSetChanged();
listview.setAdapter(adapter)

Upvotes: 1

Views: 142

Answers (2)

maaz
maaz

Reputation: 224

I think you need to use this constructor

ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainserverActivity.this, android.R.layout.simple_list_item_1, addclientlist);

Also no need to set adapter always just set it once and each time you have to add new item to adapter you can use either of these as in java Array objects are pass by reference, and then call notifydatasetchanged

adapter.add(remoteip);
//or addclientlist.add(remoteip);
adapter.notifyDataSetChanged();  // Dont forget this

Upvotes: 1

Gilad Haimov
Gilad Haimov

Reputation: 5867

You are updating the adapter initialization list, which is futile.

Instead - update the actual adapter:

adapter = new ArrayAdapter<String>(MainserverActivity.this,
                                    android.R.layout.simple_list_item_1, android.R.id.text1, addclientlist);
listview.setAdapter(adapter)
...........

adapter.add(remoteip); // <----- instead of addclientlist.add()
adapter.notifyDataSetChanged();

Upvotes: 1

Related Questions