android - 从 FireBase 中检索数据并在单击按钮时一一显示 CardView
问题描述
我正在开发一个测验应用程序,并希望在卡片视图中显示每个问题以及选项。我想一次显示一个卡片视图,然后单击按钮移动到下一个。我找到了使用 Recycler 视图检索所有卡片视图的方法。但我一次想要一个,这样我就可以计算结果。我使用 FireBase 作为后端数据服务器。将它们保存在回收商视图中计算结果也可以帮助我。谢谢!
我的 MainActivity.Java
package com.example.mmohsinsiddiqui.firetestapp;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class MainActivity extends AppCompatActivity {
private RecyclerView mDataList;
private DatabaseReference mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String Main = "Seerat";
mDatabase= FirebaseDatabase.getInstance().getReference().child(Main);//.child("Seerat");
mDatabase.keepSynced(true);
mDataList=(RecyclerView)findViewById(R.id.seeratRecyclerView);
mDataList.setHasFixedSize(true);
mDataList.setLayoutManager(new LinearLayoutManager(this));
}
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerAdapter<GetData,BlogViewHolder> firebaseRecyclerAdapter= new FirebaseRecyclerAdapter<GetData, BlogViewHolder>
(GetData.class,R.layout.data_card,BlogViewHolder.class,mDatabase) {
@Override
protected void populateViewHolder(BlogViewHolder viewHolder, GetData model, int position) {
viewHolder.setHeading(model.getHeading());
viewHolder.setDescription(model.getDescription());
viewHolder.setOption1(model.getOption1());
viewHolder.setOption2(model.getOption2());
viewHolder.setOption3(model.getOption3());
//viewHolder.setId(model.getId());
}
};
mDataList.setAdapter(firebaseRecyclerAdapter);
}
public static class BlogViewHolder extends RecyclerView.ViewHolder{
View mView;
public BlogViewHolder(View itemView){
super(itemView);
mView=itemView;
}
public void setHeading(String title){
TextView heading = (TextView)mView.findViewById(R.id.heading);
heading.setText(title);
}
public void setDescription(String desc){
TextView description = (TextView)mView.findViewById(R.id.description);
description.setText(desc);
}
public void setOption1(String option1){
RadioButton optiona = (RadioButton) mView.findViewById(R.id.option_a);
optiona.setText(option1);
}
public void setOption2(String option2){
RadioButton optionb = (RadioButton) mView.findViewById(R.id.option_b);
optionb.setText(option2);
}
public void setOption3(String option3){
RadioButton optionc = (RadioButton) mView.findViewById(R.id.option_c);
optionc.setText(option3);
}
public int setId(int id){
int check = id;
return check;
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.mmohsinsiddiqui.firetestapp.MainActivity">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/seeratRecyclerView">
</android.support.v7.widget.RecyclerView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/seeratRecyclerView"
android:onClick="showAnswer"
android:text="CHECK"/>
</RelativeLayout>
解决方案
推荐阅读
- java - 升级 Jackson-databind 后,缺少的字段将反序列化为 null 而不是空对象
- sql - 验证选择正则表达式中的序号和字符
- mongodb - 从离线副本更新在线 Mongo 数据库
- javascript - axios数据中的等号导致axios没有发送正确的数据对象
- python - Python读取CSV在数据中添加反斜杠
- ftp - 如何从 Windows 客户端使用 -s 模式从文件 sftp
- r - 如何有效地使用 tidyverse 来延长我的数据集,以便根据存储在列中的范围每个值有一行?
- c# - 如何在 C# 中创建一个简单的字符串索引数组的字符串索引数组?
- r - 根据两个变量计算唯一观察值的计数和比例
- javascript - 节点 JS。Uncaught (in promise) ReferenceError: require is not defined