Android ListView获得新适配器后强制对话框无效
我在对话框中有一个列表视图。。。我有自己的数据适配器,但在创建/更改适配器的对话框中也有一个微调器 现在,在微调器选择更改时,将创建适配器,并将ListView的适配器设置为新适配器 这一切都很好,但我的对话框并没有在适配器更改后使其布局无效,它总是落后一步。。。这意味着,对话框始终具有在微调器选择之前应有的大小 编辑: 我只在微调器的选定事件中执行以下操作Android ListView获得新适配器后强制对话框无效,android,dialog,adapter,invalidation,Android,Dialog,Adapter,Invalidation,我在对话框中有一个列表视图。。。我有自己的数据适配器,但在创建/更改适配器的对话框中也有一个微调器 现在,在微调器选择更改时,将创建适配器,并将ListView的适配器设置为新适配器 这一切都很好,但我的对话框并没有在适配器更改后使其布局无效,它总是落后一步。。。这意味着,对话框始终具有在微调器选择之前应有的大小 编辑: 我只在微调器的选定事件中执行以下操作 public void onItemSelected(AdapterView<?> adapterView, View vie
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id)
{
if (adapterView.getId() == R.id.spMG)
{
long mg_id = ((MG)sp.getSelectedItem()).getID();
adapter.clear();
adapter.addAll(DBDataManager.getExercises(mg_id, true));
adapter.notifyDataSetChanged();
((View)lv).invalidate();
}
}
public void已选中(AdapterView AdapterView、视图视图、内部位置、长id)
{
if(adapterView.getId()==R.id.spMG)
{
长mg_id=((mg)sp.getSelectedItem()).getID();
适配器。清除();
addAll(DBDataManager.getExercises(mg_id,true));
adapter.notifyDataSetChanged();
((视图)lv.invalidate();
}
}
我使用的是ArrayAdapter,我只是向适配器添加了一个ArrayList。您是否正在运行
notifyDataSetChanged()
?现在,我没有使用它。。。无论如何,我正在调用listview.setAdapter(…)
,但我已经尝试调用notifyDataSetChanged()
,但没有任何帮助…之后是否在listview
上运行invalidate()
?是的,也尝试过了。。。现在还没有成功…您正在使用哪种类型的适配器?