在android系统从火力地堡看完后如何改变变量的值?

问题描述 投票:0回答:1

我想从火力地堡看完按钮点击后更改变量的值。例如,如果值按钮之后在火力是0单击它应该改变到1,如果它是1但应改变到2。此外,4后应该复位为0。

 on.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Context context = getApplicationContext();
                EditText editText =  findViewById(R.id.input);
                final String link = editText.getText().toString();
                fled1 = new Firebase("https://iot-5z6h8.firebaseio.com/");

                // Read from the database
                myRef = FirebaseDatabase.getInstance().getReference();
                myRef.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            state = dataSnapshot.child("Touch").getValue().toString();
                            value = Integer.parseInt(state);
                            Log.d(TAG, "Value is: " + state);
                            value+=1;
                            if(value==4){value=0;}
                            Firebase fled1Child = fled1.child("Touch");  fled1Child.setValue(value);

                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError error) {error.toException());
                    }
                });

我希望在火力值改变只按一下按钮。但该值在连续循环转变为0-1-2-3-0-1-2-3。

java android firebase firebase-realtime-database
1个回答
0
投票

你的代码并称被在指定的位置变化调用每一次数据的监听器。并增加了另一个新的监听每个按钮被点击的时间。所以,每一个按钮被点击的时候,你会乘你看到的输出量。

如果你想read data a single time,而不是添加监听所有的时间(直到被删除)的监听器,使用addListenerForSingleValueEvent

© www.soinside.com 2019 - 2024. All rights reserved.