Java Android:SimpleAdapter notifyOnDataSetChanged不会激发getView
标题几乎说明了一切。我有一个listview,它由一个简单的适配器和一个xml布局填充,该布局根据listview项中的行数进行更改。当我向活动中的一个项目添加数据时,调用notifyondatasetchanged不会更新列表,但是如果我退出活动并返回所有内容,则看起来应该是这样的。当我刷新适配器时,getview也会更新,我需要做什么Java Android:SimpleAdapter notifyOnDataSetChanged不会激发getView,java,android,listview,simpleadapter,Java,Android,Listview,Simpleadapter,标题几乎说明了一切。我有一个listview,它由一个简单的适配器和一个xml布局填充,该布局根据listview项中的行数进行更改。当我向活动中的一个项目添加数据时,调用notifyondatasetchanged不会更新列表,但是如果我退出活动并返回所有内容,则看起来应该是这样的。当我刷新适配器时,getview也会更新,我需要做什么 public AlarmListAdapter(Context context, ArrayList<HashMap<String, St
public AlarmListAdapter(Context context, ArrayList<HashMap<String, String>> list, int textViewResourceId, String[] fields, int[] textViewId) {
super(context, list, textViewResourceId, fields, textViewId);
this.list = list;
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.alarm_list_item, null);
}
if(list.get(position).get("alert") == null){
v.findViewById(R.id.ListViewItemSub).setVisibility(View.GONE);
}
return super.getView(position, convertView, parent);
}
public void forceReload(){
notifyDataSetChanged();
}
您可以尝试
setListAdapter(您的适配器)代码>
或listview.requestLayout()代码>
如果这些都不起作用,那么您也可以尝试通过滚动刷新listview,因为一旦滚动listview,就会调用getView()函数。刷新适配器(您的第一个建议)起作用。我怎么没想到呢!?!谢谢!
addCustomAlertButton = (Button)pView.findViewById(R.id.AddCustomAlertButton);
addCustomAlertButton.setOnClickListener(new OnClickListener(){
public void onClick(View v){
arrayList.get((int) customAlertId).setAlertDialog(customAlertInput.getText().toString());
Toast.makeText(EditAlarmsActivity.this, "Custom Alert Added", Toast.LENGTH_SHORT).show();
updateListArray();
pw.dismiss();
}