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

Android 如何更改setOnItemClickListener部分中的listview适配器,android,listview,Android,Listview,我有一些listview和listadapter,单击列表中的项目后,我想用新数据重新加载列表,更改适配器的竞争 我在setOnItemClickListener中使用了这个函数,但我得到了一个错误:“键入构造函数ArrayAdapter(new AdapterView.OnItemClickListener(){},int,ArrayList)未定义” list.setAdapter(新的ArrayAdapter(这个,R.layout.simple_list_item_1,Data.user

我有一些listview和listadapter,单击列表中的项目后,我想用新数据重新加载列表,更改适配器的竞争

我在setOnItemClickListener中使用了这个函数,但我得到了一个错误:“键入构造函数ArrayAdapter(new AdapterView.OnItemClickListener(){},int,ArrayList)未定义”

list.setAdapter(新的ArrayAdapter(这个,R.layout.simple_list_item_1,Data.user.getSelected_rest());
我应该如何正确地做到这一点?

答案应该会让你朝着正确的方向前进。如果可以使用
add()
remove()
insert()
clear()
转换初始阵列适配器,则可以调用
notifyDataSetChanged()
重新加载它

编辑

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

list.setAdapter(new ArrayAdapter<String>(this, R.layout.simple_list_item_1,Data.user.getChosen_rest()));
list.setAdapter(新的ArrayAdapter(这个,R.layout.simple_list_item_1,Data.user.getSelected_rest());

list.setAdapter(新的ArrayAdapter(NameOfActivity.this,R.layout.simple_list_item_1,Data.user.getSelected_rest());

首先。

格伦登的答案可能是正确的。尽管如此,如果出于某种原因确实需要更改适配器,则需要将正确的
上下文
实例传递给构造函数的第一个参数

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

list.setAdapter(new ArrayAdapter<String>(mContext, R.layout.simple_list_item_1,Data.user.getChosen_rest()));
list.setAdapter(新的ArrayAdapter(mContext,R.layout.simple_list_item_1,Data.user.getSelected_rest());
或者,如果侦听器是活动的内部类,则可以使用:

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

这取决于侦听器的位置。在看到您的编辑之前,我添加了相同的方法。当我清除适配器并尝试添加新字符串或“使用新列表数据重新创建ArrayAdapter”时,我在开头提到了错误
键入构造函数ArrayAdapter(new AdapterView.OnItemClickListener(){},int,ArrayList)未定义“
BTW,
NameOfJavaFile
可能是扩展OnClickListener的类的名称,不清楚您是否指的是该活动。感谢Aleadam,您的答案对我有用:)单击“我的适配器”后还有一个问题,列表中的内容正在更改。我想在按下“后退”按钮后选择“返回”,完成这项任务最简单的方法是什么?我不太确定“返回”是什么意思。无论如何,这看起来是一个完全不同的问题。请考虑张贴一个新的一个更好地描述你所需要的。
list.setAdapter(new ArrayAdapter<String>(mContext, R.layout.simple_list_item_1,Data.user.getChosen_rest()));
list.setAdapter(new ArrayAdapter<String>(MyActivity.this, R.layout.simple_list_item_1,Data.user.getChosen_rest()));