Android 删除listView时未更新的总小时数

Android 删除listView时未更新的总小时数,android,listview,android-listview,baseadapter,Android,Listview,Android Listview,Baseadapter,下图显示了工作细节的列表视图 listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { // long press on listView public boolean onItemLongClick(final AdapterView<?> p, View v, final int po, long id) {

下图显示了工作细节的
列表视图

  listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { // long press on listView
                public boolean onItemLongClick(final AdapterView<?> p, View v, final int po, long id) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(WorkDetailsTable.this);
                    builder.setTitle("Delete");
                    builder.setMessage("Are you sure you want to delete?");
                    builder.setIcon(android.R.drawable.ic_dialog_alert);
                    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int ii) {
                            objMyCustomBaseAdapter.removeItem(po);
                        }

                    });
            });

  @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) { // receive from Activity B and populate ListView A
        if (resultCode == RESULT_OK) {
            if (requestCode == PROJECT_REQUEST_CODE) {
                ReceiveProject = data.getStringExtra("Project");
                ReceiveDescription = data.getStringExtra("Description");
                ReceiveProgress = data.getIntExtra("progress", 0);
                ReceiveTimeIn = data.getStringExtra("TimeIn");
                ReceiveTimeOut = data.getStringExtra("TimeOut");

                int a = SplitTime(objMyCustomBaseAdapter.getFistTime()); // calculate timeIn
                int b = SplitTime(objMyCustomBaseAdapter.getLastTime()); //calculate timeOut
                long difference = 0;
                if (a > b) {
                    difference = (b + (24 * 60) - a) - (1 * 60);
                    int minutes = (int) (difference % 60);
                    int hours = (int) ((difference / 60) % (24 * 60));
                    totalHours.setText(("Total hours : " + hours + ":" + minutes));

                } else {
                    difference = (b - a) - (1 * 60);
                    int minutes = (int) (difference % 60);
                    int hours = (int) ((difference / 60) % (24 * 60));
                    totalHours.setText(("Total hours : " + hours + ":" + minutes));
                }

            }
        }
            }
        }

我使用
页脚
显示总小时数布局,并使用
页脚布局
显示两个按钮

当第三个
列表视图被删除时,它假定显示7小时(第二个列表的18:0-第一个列表的10:00)-1)。但它仍然显示
18:32

工作细节

  listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { // long press on listView
                public boolean onItemLongClick(final AdapterView<?> p, View v, final int po, long id) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(WorkDetailsTable.this);
                    builder.setTitle("Delete");
                    builder.setMessage("Are you sure you want to delete?");
                    builder.setIcon(android.R.drawable.ic_dialog_alert);
                    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int ii) {
                            objMyCustomBaseAdapter.removeItem(po);
                        }

                    });
            });

  @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) { // receive from Activity B and populate ListView A
        if (resultCode == RESULT_OK) {
            if (requestCode == PROJECT_REQUEST_CODE) {
                ReceiveProject = data.getStringExtra("Project");
                ReceiveDescription = data.getStringExtra("Description");
                ReceiveProgress = data.getIntExtra("progress", 0);
                ReceiveTimeIn = data.getStringExtra("TimeIn");
                ReceiveTimeOut = data.getStringExtra("TimeOut");

                int a = SplitTime(objMyCustomBaseAdapter.getFistTime()); // calculate timeIn
                int b = SplitTime(objMyCustomBaseAdapter.getLastTime()); //calculate timeOut
                long difference = 0;
                if (a > b) {
                    difference = (b + (24 * 60) - a) - (1 * 60);
                    int minutes = (int) (difference % 60);
                    int hours = (int) ((difference / 60) % (24 * 60));
                    totalHours.setText(("Total hours : " + hours + ":" + minutes));

                } else {
                    difference = (b - a) - (1 * 60);
                    int minutes = (int) (difference % 60);
                    int hours = (int) ((difference / 60) % (24 * 60));
                    totalHours.setText(("Total hours : " + hours + ":" + minutes));
                }

            }
        }
            }
        }
如果我将新列表添加到listView,则总小时数将被更新,但不适用于
listView
delete

请告诉我当列表被删除时,我应该如何更新总小时数。非常感谢

listview.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){//长按listview
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { // long press on listView
                    public boolean onItemLongClick(final AdapterView<?> p, View v, final int po, long id) {
                        ...
                        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int ii) {
                                objMyCustomBaseAdapter.removeItem(po);
                                // calculate total hour then update it in here
                            }

                        });
});
长点击(最终适配器视图p、视图v、最终整数po、长id){ ... builder.setPositiveButton(“是”,新建DialogInterface.OnClickListener(){ 公共void onClick(对话框接口对话框,int ii){ objMyCustomBaseAdapter.removietem(po); //计算总小时数,然后在此处更新 } }); });
所以我有两种方法?一种是在onActivityResult中,另一种是在listView单击中?您可以定义一个新函数,如
updateTotalHour()
然后您可以在onActivityResult和listView单击中调用它