我有一个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)
答案 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