我想从火力地堡看完按钮点击后更改变量的值。例如,如果值按钮之后在火力是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。
你的代码并称被在指定的位置变化调用每一次数据的监听器。并增加了另一个新的监听每个按钮被点击的时间。所以,每一个按钮被点击的时候,你会乘你看到的输出量。
如果你想read data a single time,而不是添加监听所有的时间(直到被删除)的监听器,使用addListenerForSingleValueEvent。