【问题标题】:How to disable a button and clear an arraylist?如何禁用按钮并清除数组列表?
【发布时间】:2020-01-25 08:53:00
【问题描述】:

我有一些按钮和数组列表,我的按钮有条件

if(list.isEmpty){ 
   button.setEnabled(false)  
} 

textTotalFinalPrice 将值设置为0

但在我的情况下,该功能实际工作 BUT 必须单击 2 次才能设置值 textTotalFinalPrice 并禁用 button

如果只是 1 点击ArrayList 不清除数据

我试过list.clear();还是不行

代码:

    public void calculateTotalPrice(){
        activity.header.grandTotalPrice();
        activity.textTotalFinalPrice.setText(NumberFormat.getCurrencyInstance(new Locale("id", "id")).format(activity.header.getFinalTotal()));
    }

    private void conditionCartsSize() {
        if (activity.header.getCarts().isEmpty()){
            activity.textFinishOrder.setEnabled(false);
        }else{
            activity.textFinishOrder.setEnabled(true);
            activity.textFinishOrder.setOnClickListener(view -> {
                PrintHelper.bluetoothPrint(activity, activity.header);
                calculateTotalPrice();
                AlertDialog dialog = new AlertDialog.Builder(activity)
                        .setTitle("Pesanan Berhasil")
                        .setMessage("Silahkan Ambil Struk Anda")
                        .create();

                dialog.show();
                activity.header.getCarts().removeAll(activity.header.getCarts());
                notifyDataSetChanged();
            });
        }
    }

我会很感激你的回答

【问题讨论】:

  • 尝试检查大小,如果为零
  • 我试过了,但遇到了同样的问题。顺便说一句 isEmpty == list.Size() == 0 ,它只是简化
  • 显示更多代码
  • 其他代码没有任何问题,只是如何清除列表
  • 清除列表并使用new Arraylist();创建一个新列表并查看

标签: java android list conditional-statements


【解决方案1】:

尝试使用 list = new ArrayList();

【讨论】:

  • 啊,我明白了,只是一点点定制。谢谢老兄!
【解决方案2】:

检查getCarts() 中的size if 条件如下

  private void conditionCartsSize() {
        if (activity.header.getCarts().size>0){
            activity.textFinishOrder.setEnabled(false);
        }else{
            activity.textFinishOrder.setEnabled(true);
            activity.textFinishOrder.setOnClickListener(view -> {
                PrintHelper.bluetoothPrint(activity, activity.header);
                calculateTotalPrice();
                AlertDialog dialog = new AlertDialog.Builder(activity)
                        .setTitle("Pesanan Berhasil")
                        .setMessage("Silahkan Ambil Struk Anda")
                        .create();

                dialog.show();
                activity.header.getCarts().removeAll(activity.header.getCarts());
                notifyDataSetChanged();
            });
        }
    }

【讨论】:

  • 如果getCarts(),size > 0 按钮将始终被禁用,请重新检查我的问题
【解决方案3】:

已修复

只需像这样进行一些自定义即可初始化新的 ArrayList: activity.header = new Header(0,0,0,0,0,0,new ArrayList());

【讨论】:

    猜你喜欢
    • 2013-03-15
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多