我有一个ListView
。我用ArrayAdapter
填充了一系列对象。所有数据都来自后端。当我点击列表项目时,我将导航到详细信息屏幕。如何刷新Android列表数据?
场景:
经理有他/她的reportees提出休假请求的列表。当经理选择离职请求时,它将显示特定请假的详细信息。在详细信息屏幕中,经理可以批准/拒绝假期。在批准/拒绝特定请假之后,经理必须回到请假请求清单。现在批准/拒绝请假请求不应出现在列表中。
任何人都可以告诉我如何在请假申请被批准/拒绝后刷新清单。
下面是我的适配器代码:
private class MyCustomAdapter extends ArrayAdapter<EmployeeLeaveHistory>
{
private ArrayList<EmployeeLeaveHistory> leavesList;
public MyCustomAdapter(Context context,
int leaveOverviewListItem,
ArrayList<EmployeeLeaveHistory> empLeaveOverview) {
// TODO Auto-generated constructor stub
super(context, leaveOverviewListItem, empLeaveOverview);
this.leavesList = new ArrayList<EmployeeLeaveHistory>();
this.leavesList.addAll(empLeaveOverview);
}
public class ViewHolder{
TextView status = null;
//TextView reason = null;
TextView startDate = null;
TextView duration = null;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
LayoutInflater li = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = li.inflate(R.layout.leave_overview_list_item, null);
holder = new ViewHolder();
holder.startDate = (TextView) convertView.findViewById(R.id.txtLeaveRequestStartDate);
holder.duration = (TextView) convertView.findViewById(R.id.txtLeaveRequestDuration);
holder.status = (TextView) convertView.findViewById(R.id.txtLeaveRequestStatus);
final EmployeeLeaveHistory elh = leavesList.get(position);
convertView.setTag(elh);
if(elh != null)
{
elh.setListPosition(position);
holder.startDate.setText(elh.getLeaveStartDate());
holder.duration.setText(elh.getLeaveDuration());
holder.status.setText(elh.getLeaveStatus());
}
return convertView;
}
}
你可以请解释我如何在UI线程上调用notifyDataSetChange()。我对android编程没有太多的知识。 – user2740599
嘿,我已经添加了一段在UI线程上运行的代码。 – gokhanakkurt
我必须在这里调用这个方法。 – user2740599