Java 如何使用next按钮逐个调用firebase中的子节点
我想调用我的questionroot节点及其子问题编号,即int 一个接一个地使用下一个按钮 但问题是firebase中的子名称是唯一允许的字符串 我试过这个 字符串mCount=0 然后使用 int mIntconverted=Integer.parseIntmCount mint++ 然后再次将int转换为string mCount=Integer.tostringmitconverted 但是我的应用程序崩溃了Java 如何使用next按钮逐个调用firebase中的子节点,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我想调用我的questionroot节点及其子问题编号,即int 一个接一个地使用下一个按钮 但问题是firebase中的子名称是唯一允许的字符串 我试过这个 字符串mCount=0 然后使用 int mIntconverted=Integer.parseIntmCount mint++ 然后再次将int转换为string mCount=Integer.tostringmitconverted 但是我的应用程序崩溃了 // Next Button Code here mNext.
// Next Button Code here
mNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int mIntConvert=Integer.parseInt(count);
mIntConvert++;
count=Integer.toString(mIntConvert);
}
});
java文件
public class MainActivity extends AppCompatActivity {
String count="0";
int countA=0;
TextView mConditionTextview;
Button mButtonFoggy;
Button mNext;
TextView mQuestiontext;
RadioButton mRadiobutton1;
RadioButton mRadiobutton2;
RadioButton mRadiobutton3;
RadioButton mRadiobutton4;
// firebase database refrences
DatabaseReference mRootRef= FirebaseDatabase.getInstance().getReference();
DatabaseReference mRoot=mRootRef.child("Root");
DatabaseReference mQuestion =mRootRef.child("Question");
DatabaseReference mChild=mQuestion.child(count);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mQuestiontext=(TextView)findViewById(R.id.TextViewQuestion);
mConditionTextview =(TextView)findViewById(R.id.TextViewCondition);
mNext=(Button)findViewById(R.id.buttonNext);
}
@Override
protected void onStart(){
super.onStart();
loadQuestion();
}
// method for loading ques
private void loadQuestion() {
mRoot.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String text=dataSnapshot.getValue(String.class);
mConditionTextview.setText(text);
// mQuestiontext.setText(text);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mQuestion.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String text=dataSnapshot.getValue(String.class);
// mConditionTextview.setText(text);
mQuestiontext.setText(text);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mChild.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String text=dataSnapshot.getValue(String.class);
// mConditionTextview.setText(text);
mQuestiontext.setText(text);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
// Next Button Code here
mNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int mIntConvert=Integer.parseInt(count);
mIntConvert++;
count=Integer.toString(mIntConvert);
}
});
}
你能发布你的代码和你的Firebase JSON结构的图片吗,否则就无法理解问题所在。刚刚添加了Firebase数据库的屏幕截图@您能添加整个Java文件吗?只添加了Java code@PatMyronFirebase.setAndroidContextthis;以上代码来自旧的firebase版本,不再运行@rjz satvarause此编译'com.google.firebase:firebase数据库:9.0.2'感谢它与新版本一起工作,并对上述代码进行了一些修改。噢,太好了。祝您学习愉快感谢@rjz satvara今天我的项目几乎完成了80%…感谢您的帮助,我在这方面学到了很多东西火基。
Firebase.setAndroidContext(this);
ref = new Firebase(Constants.FIREBASE_URL);
try {
ref.child("Root/Question/").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.e("!)@@>>", dataSnapshot.getKey() + " " + dataSnapshot.getValue() + " " + dataSnapshot.getChildren() + " " + dataSnapshot.getChildrenCount());
ArrayList<String> a = (ArrayList) dataSnapshot.getValue();
Log.e("!_@@", a.get(0) + ""); // use your counter value instead of 0
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
} catch (Exception e) {
e.printStackTrace();
}