安卓如何将arraylist里的值一个个更新到ui?

public Handler receiveHandler = new Handler() {
public void handleMessage(Message msg) {
String str = (String) msg.obj;
edtReceiveInfo.setText(str);
}
};

public class udpReceiveThread extends Thread {

    @Override
    public void run() {
        try {
            while (true) {
                socket = new DatagramSocket(Integer.parseInt(edtReceivePort
                        .getText().toString()));

                listenStatus = true;
                while (listenStatus) {
                    byte[] inBuf = new byte[1024];
                    DatagramPacket inPacket = new DatagramPacket(inBuf,
                            inBuf.length);
                    socket.receive(inPacket);
                    String str = new String(inPacket.getData());
                    receiveInfo = Change1(str, inPacket.getLength());
                        // Log.i("dianwei",receiveInfo);
                        for (int i = 0; i < receiveInfo.size(); i++) {
                    Message msg = new Message();
                    if (receiveInfo != null && receiveInfo.size() > 0
                            && !(receiveInfo.size() == i)) {
                        msg.obj = receiveInfo.get(i);
                        msg.what = 0;
                  receiveHandler.sendMessage(msg);}
                    }socket.close();
                }   
        } catch (Exception e) {
            try {
                udpReceiveThread.sleep(1000);
                }
             catch (InterruptedException e1) {  
                e1.printStackTrace();
            }
        }
}}
我现在遇到的问题是:我用网络调试助手循环发送数据的时候,能接收到,但是显示的时候有问题,用settext时候,只能显示最后一个数据,用uppend的时候,我所有的数据循环显示,我想要一个个更新显示在我的界面上,大家有什么好方法吗?

没有adapter吗?

不知道你是哪种更新,不过既然已经取到值了,可以吧循环的值赋给一个list集合或者hashmap
然后主要逻辑就集中在handler里面了,想怎么赋值就怎么取值就可以了

Thread thread = new Thread(new Runnable() {
public void run() {

                if (getReceiveInfo() != null && !(getReceiveInfo().size() == i) && getReceiveInfo().size() > 0){
                Message msg = new Message();
                msg.obj = getReceiveInfo().get(i);
                try {
                    Thread.sleep(500);
                } catch (Exception e) {
                }
                msg.what = 0;
                receiveHandler.sendMessage(msg);
                Log.i("dianwei",getReceiveInfo().get(i));
            }
        }
    });
    thread.start();