gpt4 book ai didi

java - setListAdapter 不在 ListActivity 中显示我的字符串数组

转载 作者:行者123 更新时间:2023-12-01 15:50:45 24 4
gpt4 key购买 nike

list_item.xml:http://pastebin.com/bn56L3NN

在 onCreate() 和创建 Comm 对象之后发生的情况是,我收到一条“已建立连接”消息,该消息在另一个线程中被拾取,并且我在 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);
}
});
}

}

最佳答案

您忘记在 onCreate() 中为您的 Activity 设置内容 View ,其中包含 Activity 的布局。因此没有可显示的列表可以显示任何内容。在布局 XML 文件中定义布局并使用 setContentView() 将其设置为内容 View .

关于java - setListAdapter 不在 ListActivity 中显示我的字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com