实战演练-记账本App (五)

在使用了记账本APP后发现还存在这一些问题

1、用户添加账单时如果内容、金额输入为空时不会给出提示,会造成下面这种情况,添加账单后信息显示为空,降低了使用体验

 改动的地方在CostActivity.java文件中,只要添加判断为空的语句即可,代码如下

//添加
        Button btn2 = (Button) findViewById(R.id.btn2);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View view) {
                AlertDialog.Builder builder = new AlertDialog.Builder(CostActivity.this);
                LayoutInflater inflater = LayoutInflater.from(CostActivity.this);
                View viewDialog = inflater.inflate(R.layout.new_data, null);
                final EditText title = (EditText) viewDialog.findViewById(R.id.et_cost_title);
                final EditText money = (EditText) viewDialog.findViewById(R.id.et_cost_money);
                final DatePicker date = (DatePicker) viewDialog.findViewById(R.id.dp_cost_date);
                builder.setView(viewDialog);
                builder.setTitle("新收入");
                builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        CostBean costBean = new CostBean();
                        costBean.costTitle = title.getText().toString();
                        costBean.costMoney = money.getText().toString();
                        costBean.costDate = date.getYear() + "-" + (date.getMonth() + 1) + "-" + date.getDayOfMonth();
                        if ( TextUtils.isEmpty(costBean.costTitle) || TextUtils.isEmpty(costBean.costMoney) ) {
                            Toast.makeText(view.getContext(), "请将信息填写完整", Toast.LENGTH_SHORT).show();
                        } else {
                            mDatabaseHelper.insertCost(costBean);
                            Toast.makeText(view.getContext(), "添加成功", Toast.LENGTH_SHORT).show();
                            mCostBeanList.add(costBean);
                            mAdapter.notifyDataSetChanged();
                        }
                    }
                });
                builder.setNegativeButton("取消", null);
                builder.create().show();
            }
        });
    }

在IncomeActivity.java文件中也是相同的改法

当输入为空或不完整时会给出提示。

2、用户无法进行单一删除

 改动的地方在CostActivity.java文件中,添加长按触发事件进行删除即可,代码如下

 //长按删除
        costList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
                AlertDialog.Builder b = new AlertDialog.Builder(CostActivity.this);
                //设置提示框内容
                b.setMessage("确认删除?");
                //设置标题栏
                b.setTitle("提示");
                b.setPositiveButton("确认", new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {
                        mCostBeanList.remove(position);
                        mAdapter.notifyDataSetChanged();
                        Toast.makeText(CostActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(CostActivity.this, "删除失败", Toast.LENGTH_SHORT).show();
                        dialog.dismiss();
                    }
                });
                b.create().show();
                return true;
            }
            });

长按某一账单后弹出提示框

 在IncomeActivity.java文件中也是相同的方法。

原文地址:https://www.cnblogs.com/MoooJL/p/12307370.html