Listview添加到同一行

时间:2014-08-31 18:00:28

标签: android android-listview

我有一个Android应用程序列出了列表视图中的连接客户端,但每当有人连接时,它只是将它们添加到同一行,这是我用来添加连接客户端的代码。我是listview的新手,不知道如何正确地做到这一点,我查看了android文档,但很难说需要使用什么。如果有人能帮助我,那就太好了。

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)

2 个答案:

答案 0 :(得分:1)

您正在更新适配器初始化列表,这是徒劳的。

相反 - 更新实际的适配器:

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();

答案 1 :(得分:1)

我认为你需要使用这个构造函数

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

也不需要设置适配器总是只设置一次,每次必须将新项添加到适配器时,您可以使用其中任何一个,如在java中,Array对象通过引用传递,然后调用notifydatasetchanged

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