【发布时间】:2021-05-09 21:38:51
【问题描述】:
请帮帮我 我正在制作一个投票应用程序
我已经到了一个阶段,我想选择一个会增加数据库投票数的人,但我不知道该怎么做
我想要一个方法。当用户点击应用程序中的名称时,count 在数据库中从 1 增加到 2,并在每次点击时继续增加
我想从数据库中读取计数,然后在单击应用程序中的按钮或文本名称时增加它
如何在我的代码中使用 Transaction 来做到这一点取决于我的数据库?
RecyclerView raees_RecyclerView;
private DatabaseReference databaseReference;
private ArrayList <Condidate> candidateArrayList;
private Context context;
FirebaseRecyclerAdapter<Condidate, RaeesRecyclerViewAdapter> adapter;
Button vote;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.raees__at7ad);
raees_RecyclerView = findViewById(R.id.raees_recyclerView);
LinearLayoutManager layoutManager =new LinearLayoutManager(this);
raees_RecyclerView.setLayoutManager(layoutManager);
raees_RecyclerView.setHasFixedSize(true);
vote = findViewById(R.id.voteBtn);
databaseReference = FirebaseDatabase.getInstance().getReference("المرشحون").child("رئيس اتحاد الطلبة");
candidateArrayList = new ArrayList <>();
loadDataFromfirebaseToRecyclerView();
}
private void loadDataFromfirebaseToRecyclerView() {
FirebaseRecyclerOptions <Condidate> options = new FirebaseRecyclerOptions.Builder<Condidate>()
.setQuery(databaseReference,Condidate.class)
.build();
FirebaseRecyclerAdapter<Condidate, RaeesRecyclerViewAdapter> firebaseRecyclerAdapter =
new FirebaseRecyclerAdapter <Condidate, RaeesRecyclerViewAdapter>(options) {
@Override
protected void onBindViewHolder(@NonNull final RaeesRecyclerViewAdapter viewHolder, int postion, @NonNull Condidate condidate) {
viewHolder.textView.setText(condidate.getName());
final Condidate clickItem= condidate;
viewHolder.setItemClickListener(new RecyclerViewInterface() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
// the method for make count increment in database here can help pls
}
}); }
@NonNull
@Override
public RaeesRecyclerViewAdapter onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.raees_card,parent,false);
return new RaeesRecyclerViewAdapter(view);
}
};
firebaseRecyclerAdapter.startListening();
raees_RecyclerView.setAdapter(firebaseRecyclerAdapter);
}
////////
public TextView textView;
private RecyclerViewInterface recyclerViewInterface;
public RaeesRecyclerViewAdapter(@NonNull View itemView) {
super(itemView);
textView=itemView.findViewById(R.id.raeesName);
itemView.setOnClickListener(this);
}
public void setItemClickListener(RecyclerViewInterface itemClickListener) {
this.recyclerViewInterface = itemClickListener;
}
@Override
public void onClick(View view) {
recyclerViewInterface.onClick(view,getAdapterPosition(),false);
}
【问题讨论】:
标签: android firebase-realtime-database