【发布时间】:2018-07-12 02:09:51
【问题描述】:
我正在设计一个票应用程序来获取票。每个餐厅都包含三个派对大小的票号。单选按钮是选项。
我尝试更新 Firebase。
如果用户点击了btnPartSize1_2,希望将QueueA“0”改为1
然而,它不能。我想知道代码中存在一些问题,我正在尝试修改 btnPartySize 按钮部分,以便我不需要重复三次相同的代码。
请帮忙。
The image show the data structure in Firebase
public class Queue extends AppCompatActivity {
RadioGroup radioGroup;
RadioButton btnPartySize1_2, btnPartySize3_4, btnPartySize5_6;
Button buttonQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_queue);
buttonQueue = (Button) findViewById(R.id.btnQueue);
btnPartySize1_2 = (RadioButton) findViewById(R.id.btnPartySize1_2);
btnPartySize3_4 = (RadioButton) findViewById(R.id.btnPartySize3_4);
btnPartySize5_6 = (RadioButton) findViewById(R.id.btnPartySize5_6);
final RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference table_user = database.getReference("Restaurant");
final DatabaseReference QueueA = FirebaseDatabase.getInstance().getReference("QueueA");
final DatabaseReference QueueB = FirebaseDatabase.getInstance().getReference("QueueB");
final DatabaseReference QueueC = FirebaseDatabase.getInstance().getReference("QueueC");
buttonQueue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(btnPartySize1_2.isChecked()) {
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int QueueA = dataSnapshot.child("QueueA").getValue(Integer.class);
QueueA++;
this.child("QueueA").setValue(QueueA);
Toast.makeText(Queue.this, "You have collected", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
QueueA.addListenerForSingleValueEvent(eventListener);
} else if (btnPartySize3_4.isChecked()) {
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int counter = dataSnapshot.child("counter").getValue(Integer.class);
counter++;
QueueB.child("counter").setValue(counter);
Toast.makeText(Queue.this, "You have collected", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
QueueB.addListenerForSingleValueEvent(eventListener);
} else if (btnPartySize5_6.isChecked()) {
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int counter = dataSnapshot.child("counter").getValue(Integer.class);
counter++;
QueueC.child("counter").setValue(counter);
Toast.makeText(Queue.this, "You have collected", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
QueueC.addListenerForSingleValueEvent(eventListener);
} else {
Toast.makeText(Queue.this, "Please choose party size", Toast.LENGTH_SHORT).show();
}
}
});
}
有人可以帮忙吗? 真诚希望您的帮助!!
【问题讨论】:
标签: java android firebase firebase-realtime-database radio-button