list_item.xml:http://pastebin.com/bn56L3NNsetListAdapter不会在ListActivity显示我的字符串数组
的onCreate()之后,创造了通讯对象后会发生什么,我得到它得到回升“连接建立”消息在另一个线程中,然后我在receiveMessage中获得消息,然后发送“list”并再次调用receiveMessage。
我已经检查Log.v,我确实收回了我想要列出的消息,我的问题是当我到达这些行时无法在ListActivity中显示它,也许我应该替换它们别的东西?:
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, userRooms));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
全码:
package elf.app;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import elf.app.comm.CommClient;
import elf.app.comm.CommListener;
import elf.app.entity.ELFList;
import elf.app.entity.Entry;
public class RoomListActivity extends ListActivity implements CommListener {
private ELFList eList;
private String[] userRooms;
private CommClient comm;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
eList = new ELFList();
comm = new CommClient( getIntent().getExtras().getString("ip"),
getIntent().getExtras().getInt("port"));
comm.setListener(this);
new Thread(comm).start();
}
public void receiveMessage(String IP, String message, int id) {
if(message.equals("Connection established")) {
comm.send("list");
}
if(message.charAt(0)=='#') {
String[] strArr = toStringarr(message);
eList.add(strArr);
listItems();
}
}
public String[] toStringarr(String str) {
String substr = str.substring(1);
return substr.split("@");
}
public void listItems() {
userRooms = eList.returnNames();
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, userRooms));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Entry e = eList.getEntry(position);
String roominfo = e.toString();
Intent intent = new Intent(RoomListActivity.this, RoomInfoActivity.class);
intent.putExtra("entry",roominfo);
intent.putExtra("ip", getIntent().getExtras().getString("ip"));
intent.putExtra("port", getIntent().getExtras().getInt("port"));
comm.disconnect();
RoomListActivity.this.startActivity(intent);
}
});
}
}
好的,现在将代码添加到问题中,虽然我不知道如何格式化(我检查了常见问题,但由于某种原因它不起作用。)。 另外,pastebin是粘贴更大的文本片段的一种可接受的方式,所以我建议分割代码和链接那样..但我明白了你的观点..我将在下次直接发布代码.. – 2011-05-23 12:56:00