gpt4 book ai didi

android - 在 Android 中动态填充对象的 ListView

转载 作者:可可西里 更新时间:2023-10-31 22:03:40 25 4
gpt4 key购买 nike

我在网上查阅了一些教程,但认为以下是最好的方法。

我的 Activity 只包含一个文本字段 (editText) 和一个 ListView (rooomlv)

  • 代码

列表中包含的对象是RoomCell对象

我的类(class)有以下变量

public class RoomsActivity extends ActionBarActivity {

ListView listview2;
RoomCell[] roomcells = {rc1, rc2, rc3, rc4, rc5, rc6, rc7, rc8, rc9};
//where rc1, rc2, ... are predefined objects
RoomCell[] finalcells = roomcells;
RoomListAdapter rla;

我的 onCreate 方法如下所示:

   @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rooms);

listview2 = (ListView) findViewById(R.id.roomlv);
listview2.setClickable(true);
listview2.setOnItemClickListener(onListClick2);

EditText filterText = (EditText) findViewById(R.id.editText);
filterText.addTextChangedListener(filterTextWatcher);

rla = new RoomListAdapter(this, finalcells);
listview2.setAdapter(rla);

}

我的 TextWatcher 是这样工作的:

private TextWatcher filterTextWatcher = new TextWatcher() {

public void onTextChanged(CharSequence s, int start, int before,
int count) {
if(s.length()==0){

finalcells = roomcells;
rla.notifyDataSetChanged();

}else{

finalcells = filterList(roomcells, s);
rla.notifyDataSetChanged();

}
}
};

为方便起见,此处省略了其他 2 个覆盖方法。

filterList() 方法返回过滤后的数组(我相信这工作正常,但如果需要我会粘贴代码)

最后是 OnClick 代码:

private AdapterView.OnItemClickListener onListClick2 = new AdapterView.OnItemClickListener(){

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

GlobVar.roomtitle = finalcells[position].name;
GlobVar.roomsize = finalcells[position].size;

Intent i = new Intent(RoomsActivity.this, TheRoomActivity.class);
startActivity(i);
}
};

其中 2 个全局变量为单击的单元格分配了特定值。

  • 问题

编辑文本字段没有任何区别,点击单元格会使我的程序崩溃?

我已经无数次检查我的代码,但找不到任何错误。

提前感谢您的帮助。

最佳答案

您需要调用:

rla = new RoomListAdapter(RoomsActivity.this, finalcells);
listview2.setAdapter(rla);

调用前:

rla.notifyDataSetChanged();

在您的 onTextChanged 方法中,因为每次您在 EditText 中输入时它都会有新的过滤对象

关于android - 在 Android 中动态填充对象的 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30870239/

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