如何在setOnItemClickListener部分中更改listview适配器

时间:2011-06-06 23:14:57

标签: android listview

点击列表项后我有一些listadapter列表视图我想用新数据重新加载列表,更改适配器的竞赛。

我在setOnItemClickListener中使用它,但是我收到错误:“Type构造函数ArrayAdapter(new AdapterView.OnItemClickListener(){},int,ArrayList)未定义”

list.setAdapter(new ArrayAdapter<String>(this, R.layout.simple_list_item_1,Data.user.getChosen_rest()));

我该如何正确地做到这一点?

2 个答案:

答案 0 :(得分:1)

答案here应该让你朝着正确的方向前进。如果您可以使用add()remove()insert()clear()转换初始ArrayAdapter,则可以致电notifyDataSetChanged()重新加载。

修改

实际上,为了更好地解决您的错误,请尝试替换

list.setAdapter(new ArrayAdapter<String>(this, R.layout.simple_list_item_1,Data.user.getChosen_rest()));

list.setAdapter(new ArrayAdapter<String>(NameOfActivity.this, R.layout.simple_list_item_1,Data.user.getChosen_rest()));

第一

答案 1 :(得分:1)

格伦登的回答可能是对的。但是,如果由于某种原因确实需要更改适配器,则需要将正确的Context实例传递给构造函数的第一个参数。

您可以扩展OnClickListener并向其添加一个字段mContext,您将为其分配当前的Activity。然后,将其用作:

list.setAdapter(new ArrayAdapter<String>(mContext, R.layout.simple_list_item_1,Data.user.getChosen_rest()));

或者,如果侦听器是Activity的内部类,则可以使用:

list.setAdapter(new ArrayAdapter<String>(MyActivity.this, R.layout.simple_list_item_1,Data.user.getChosen_rest()));