2014-08-31 4 views
1

나는 연결된 클라이언트 목록보기에 나열된 안드로이드 애플 리케이션을 가지고 있지만, 누군가가 연결될 때마다, 그냥 같은 줄에 추가, 이것은 연결된 클라이언트를 추가하는 데 사용하는 코드입니다. 나는 listview를 처음 사용하고, 이것을 올바르게하는 방법을 모르겠다. 나는 안드로이드 워드 프로세서를 보았지만 사용할 필요가있는 것을 말하기는 어려웠다. 누군가가 나를 도울 수 있다면 그것은 좋을 것입니다.Listview 같은 줄에 추가

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) 

답변

1

난 당신이 항상 한 번만 설정할 어댑터를 설정하려면이 생성자 또한

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

에게 필요를 사용하지 필요가 있다고 생각하고 각 시간 : -

대신 실제 어댑터를 업데이트 새 항목을 어댑터에 추가하면 Java에서와 같이이 중 하나를 사용할 수 있습니다. 배열 객체는 참조로 전달되고 다음에 notifydatasetchanged가 호출됩니다.

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

작동하지만 두 번째 클라이언트가 연결할 때이/firstipaddress/secondipaddress 같은 두 번째 항목 목록에 첫 번째 IP 주소 (첫 번째 IP 주소)를 입력하고 세 번째 항목이 연결되면/firstipaddress/secondipaddress/thirdipaddress EDIT; 신경 쓰지 마라. 나는 remoteip + socket.getInetAddress에서 그것을 알아 낸다. = 그것을 만들기 위해 +를 제거해야했고, 모두 좋았다. – andyADD

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

답장을 보내 주셔서 감사합니다, 감사하지만, 불행히도 나는 여전히 같은 결과를 얻습니다. 여전히 같은 라인에 추가됩니다. – andyADD