【问题标题】:Java Android - Access variables outside addValueEventListenerJava Android - 访问 addValueEventListener 之外的变量
【发布时间】:2020-10-17 05:22:02
【问题描述】:

我想知道如何在mDatabase.addValueEventListener之外访问变量totalAmount

    //This is inside onCreateView
    mDatabase.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            totalAmount=0;

            for (DataSnapshot mySnapshot : dataSnapshot.getChildren()){
                Transaction transaction = mySnapshot.getValue(Transaction.class);
                totalAmount += transaction.getAmount();
            }
            String total_amount = String.valueOf(totalAmount);
            totalAmount.setText(total_amount);
        }
        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
        }
    });

    TextView.setText(String.valueOf(totalAmount))

我找不到合适的解决方案。请帮我解决这个问题。

【问题讨论】:

    标签: java android class methods


    【解决方案1】:

    全局声明total_amount。请更改您的code,如下所示:

     String total_amount = ""
     mDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    
                totalAmount=0;
    
                for (DataSnapshot mySnapshot : dataSnapshot.getChildren()){
                    Transaction transaction = mySnapshot.getValue(Transaction.class);
                    totalAmount += transaction.getAmount();
                }
                total_amount = String.valueOf(totalAmount);
                totalAmount.setText(total_amount);
            }
            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
            }
        });
    
        TextView.setText(total_amount)
    

    【讨论】:

    • 我已经尝试过了,但最终值(在 totalAmount += transaction.getAmount(); 之后)在 mDatabase.addValueEventListener(new ValueEventListener() {} 之外无法访问
    • 我在您的代码中看不到 final 关键字。删除final关键字并尝试
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2021-01-15
    • 2019-05-11
    • 1970-01-01
    相关资源
    最近更新 更多