Java 我可以在两个不同的列表视图中使用相同的ArrayAdapter吗?怎么用?

Java 我可以在两个不同的列表视图中使用相同的ArrayAdapter吗?怎么用?,java,android,listview,android-arrayadapter,Java,Android,Listview,Android Arrayadapter,我需要在两个活动中使用相同的ArrayAdapter。在MainActivity中,我只需要显示isConsumido()=true的项,在另一个activity中,我需要显示所有项 我的活动适配器: final ArrayAdapter<ItemCultural> arrayAdapterOrdenado = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, regraDeNego

我需要在两个活动中使用相同的ArrayAdapter。在MainActivity中,我只需要显示isConsumido()=true的项,在另一个activity中,我需要显示所有项

我的活动适配器:

        final ArrayAdapter<ItemCultural> arrayAdapterOrdenado = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, regraDeNegocioSingleton.getListaDeItensSingleton().getListaDeItensCulturaisOrdenados());
final ArrayAdapter arrayAdapterOrdenado=新的ArrayAdapter(这是android.R.layout.simple_list_item_1,RegrandegocioSingleton.getListaDeItensSingleton().GetListadeitensCulturesOrdenados());
现在,我使用两个适配器,但当我在TelaCadastrados的一个适配器项中检查isConsumido()时,MainActivity中的同一项需要变为不可见,而当我在TelaCadastrados上删除该项时,MainActivity中的同一项需要删除

我的TelaCadastrados适配器:

        final ArrayAdapter<ItemCultural> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1, regraDeNegocioSingleton.getListaDeItensSingleton().getListaDeItensCulturais());
final ArrayAdapter ArrayAdapter=new ArrayAdapter(这个,android.R.layout.simple_expandable_list_item_1,regraDeNegocioSingleton.getListaDeItensSingleton().getListaDeItensCulturais());

您应该使用两个适配器,但它们可以有一个公共数据集,因此当您更改某些内容时,它会同时影响两个适配器。但请记住在两个适配器中调用notifyDataSetChanged()。

您应该使用两个适配器,但它们可以有一个公共数据集,因此当您更改某些内容时,它会同时影响两个适配器。但请记住在两个适配器中调用notifyDataSetChanged()。

不要共享适配器,而是共享基础数据集。您有一个数据对象列表,适配器会包装该列表。共享列表,而不是适配器

您的
isConsumido()=true
逻辑是适配器的属性(构造函数参数)。您必须创建一个自定义适配器来添加该行为

您可以在应用程序类中存储
ItemCultural
的列表,因此在每个活动中,您可以执行以下操作:

List<ItemCultural> data = ((MyApplication)getApplication).getData();
final ArrayAdapter<ItemCultural> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1, data);
List data=((MyApplication)getApplication.getData();
最终ArrayAdapter ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u expandable\u list\u item\u 1,数据);

有人可能会告诉您将数据存储在静态文件中。不要这样做。

不要共享适配器,共享基础数据集。您有一个数据对象列表,适配器会包装该列表。共享列表,而不是适配器

您的
isConsumido()=true
逻辑是适配器的属性(构造函数参数)。您必须创建一个自定义适配器来添加该行为

您可以在应用程序类中存储
ItemCultural
的列表,因此在每个活动中,您可以执行以下操作:

List<ItemCultural> data = ((MyApplication)getApplication).getData();
final ArrayAdapter<ItemCultural> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1, data);
List data=((MyApplication)getApplication.getData();
最终ArrayAdapter ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u expandable\u list\u item\u 1,数据);

有人可能会告诉您将数据存储在静态文件中。不要那样做。

是的,你可以那样做!是的,如果他们使用相似或相同的布局文件和数据是的,您可以这样做!是的,如果他们使用相似或相同的布局文件和数据,我如何使我的ArrayAdapter中的某些项不可见,而这些项应属于两个屏幕,但我只想在其中一个屏幕中不可见。代码:)您需要一个自定义适配器。该自定义适配器条件呈现您的
ItemCultural
对象。看看这个答案:开始使用自定义适配器
ArrayAdapter
不够复杂,无法满足您的需要。当ArrayAdapter中的某些项应属于两个屏幕时,如何使其不可见,但我只想在其中一个屏幕中使其不可见。code it:)您需要一个自定义适配器。该自定义适配器条件呈现您的
ItemCultural
对象。看看这个答案:开始使用自定义适配器
ArrayAdapter
不够复杂,无法满足您的需要。当ArrayAdapter中的某个项目属于两个屏幕时,我如何使其不可见,但我只想在其中一个屏幕中使其不可见。当ArrayAdapter中的某个项目属于两个屏幕时,我如何使其不可见,但我只想让它在其中隐形。