我想以这种格式创建一个按钮:
<小时/> 我该怎么做?
每个按钮也应该这样做:
Intent intent = new Intent(getBaseContext(), FishInfo.class);
intent.putExtra("typeName", "Barbs");
intent.putExtra("typeInfo", "Sample Description...");
startActivity(intent);
但是使用正确的typeName和typeInfo
提前谢谢
答案 0 :(得分:1)
要迭代上述数据库,请尝试以下方法: -
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Categories");
ref.addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnasphot datas: dataSnasphot.getChildren()){
String num=datas.child("1").getValue().toString();
String twos=datas.child("2").getValue().toString();
String threes=datas.child("3").getValue().toString();
String four=datas.child("4").getValue().toString();
//so on
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
使用for循环,您将能够在Barbs
和Tetras
内迭代,并获取属性的值(值1,2,3,4,5, 6 ..)
按钮:
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getBaseContext(), FishInfo.class);
intent.putExtra("typeName", num);
intent.putExtra("typeInfo", twos);
startActivity(intent);
finish();
}
});
答案 1 :(得分:0)
我们有一个非常平坦的firebase数据结构,一旦你理解了结构,点击按钮就可以循环显示数据库 KEY String&#34; 1&#34;和VALUE是一个字符串。这个解决方案不仅优雅,而且有效。添加数据时要考虑的问题需要一种方法来增加KEY String。如果你得到dataSnapshot.getChildrenCount()并且意识到每条记录有6行,那么有2条记录就有12条记录,所以你的第3条记录从12 + 1开始享受代码
public void doNEXT(View view){
db = FirebaseDatabase.getInstance().getReference();
dbRef = db.child("Quiz Table");
dbRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String question = dataSnapshot.child(String.valueOf(X)).getValue(String.class);
String ansone = dataSnapshot.child(String.valueOf(X = X + 1)).getValue(String.class);
String anstwo = dataSnapshot.child(String.valueOf(X = X + 1)).getValue(String.class);
String ansthree = dataSnapshot.child(String.valueOf(X = X + 1)).getValue(String.class);
String ansfour = dataSnapshot.child(String.valueOf(X = X + 1)).getValue(String.class);
String corans = dataSnapshot.child(String.valueOf(X = X + 1)).getValue(String.class);
long valueX = dataSnapshot.getChildrenCount();
System.out.println("################################################ COUNT Children "+valueX);
etQuestion.setText(question);
etAnsOne.setText(ansone);
etAnsTwo.setText(anstwo);
etAnsThree.setText(ansthree);
etAnsFour.setText(ansfour);
etCorAns.setText(corans);
X = X + 1;
String Z = String.valueOf(X);
etTableName.setText(Z);
if(X > valueX){
Intent intentN = new Intent(ViewDatabase.this,MainActivity.class);
startActivity(intentN);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
答案 2 :(得分:0)
正如格伦德尔所说,这不是优雅的&#34;但它的确有效!为了改进他的答案我们都知道如何使用ArrayList所以这里是另一个版本,其中ArrayList在onCreate方法中被填充(加载)并且在onCreate外部点击按钮,使用可以滚动objArrayList,一定要声明objArrayList所以它是Global将它放在onCreate之上 ArrayList objArrayList = new ArrayList&lt;&gt;()
这是onCreate代码
db = FirebaseDatabase.getInstance().getReference();
dbRef = db.child("Quiz Table");
dbRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
long valueX = dataSnapshot.getChildrenCount();
for (DataSnapshot child : dataSnapshot.getChildren())
objArrayList.add(child.getValue(String.class));
String S = String.valueOf(objArrayList.size());
System.out.println("$$$$$$$$$$$$$$$$$$$$$$ objArrayList SIZE " + S);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}// END OF onCREATE BUNDLE
//=========================
这是滚动按钮的onClick方法
public void doONE(View view){
//btn onClick method
if (objArrayList != null) {
String question = objArrayList.get(Z);
String ansone = objArrayList.get(Z = Z +1);
String anstwo = objArrayList.get(Z = Z +1);
String ansthree = objArrayList.get(Z = Z +1);
String ansfour = objArrayList.get(Z = Z +1);
String corans = objArrayList.get(Z = Z +1);
etQuestion.setText(question);
etAnsOne.setText(ansone);
etAnsTwo.setText(anstwo);
etAnsThree.setText(ansthree);
etAnsFour.setText(ansfour);
etCorAns.setText(corans);
}
Z = Z + 1;
if(Z > dataSnapshot.getChildrenCount()){
Intent intentN = new Intent(ViewDatabase.this,MainActivity.class);
startActivity(intentN);
}
}