1

这是数据库结构

请帮忙!我是 Android 新手,想通过使用 MPCharts 表单 Firebase 数据计数来显示条形图和折线图。图表应显示每个主题文档和视频的孩子总数。每次变量 j 的值只有 0,不能设置 -- NoOfDocs.add(new Entry(count,j));

这是java代码

LineChart linechart;
ArrayList NoOfDocs = new ArrayList();
private String [] referenceValues = {"Hindi", "English", "Maths", "Science", "Social Science", "Computer Science", "Art & Craft", "Social Studies", "Physical Education", "Sanskrit"};
private void getDocsData() {
   for (int i=0; i<referenceValues.length;i++) {
       DatabaseReference dbref = FirebaseDatabase.getInstance().getReference(referenceValues[i].toLowerCase()+"/"+AppUtilties.DOCS_PATH);
       dbref.addListenerForSingleValueEvent(new ValueEventListener() {
           @Override
           public void onDataChange(DataSnapshot dataSnapshot) {
               int j = 0;
               String key = dataSnapshot.getKey();
               long count = dataSnapshot.getChildrenCount();
               NoOfDocs.add(new Entry(count,j));
               j++;
           }
           @Override
           public void onCancelled(DatabaseError databaseError) {
           }
       });}


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setTitle("Dashboard");
    setContentView(R.layout.activity_dashboard);
    ArrayList labels = new ArrayList();
    labels.add("Hindi");
    labels.add("English");
    labels.add("Math");
    labels.add("Science");
    labels.add("Social Science");
    labels.add("Computer Science");
    labels.add("Art");
    labels.add("Social Studies");
    labels.add("Physical Education");
    labels.add("Sanskrit");
    //line chart
    linechart = findViewById(R.id.linechart);
    getDocsData();
    LineDataSet lineDataSet = new LineDataSet(NoOfDocs, "Number Of Documents");
    LineData lineData = new LineData(labels, lineDataSet);
    linechart.setData(lineData);
    lineDataSet.setColors(ColorTemplate.COLORFUL_COLORS);
    linechart.animateY(2000);
    linechart.getLegend().setWordWrapEnabled(true);
    linechart.getLegend().setEnabled(false);}

这是xml

<TextView
        android:id="@+id/dtitle1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:padding="2dp"
        android:text="@string/Documents"
        android:textColor="@color/white_greyish"
        android:background="@color/background_color"
        android:textSize="15sp"
        android:textStyle="bold" />
    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/linechart"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>
    <TextView
        android:id="@+id/dtitle2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:padding="2dp"
        android:text="@string/Videos"
        android:textColor="@color/white_greyish"
        android:background="@color/background_color"
        android:textSize="15sp"
        android:textStyle="bold" />
    <com.github.mikephil.charting.charts.HorizontalBarChart
        android:id="@+id/barchart"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="0dp" />






[![database][1]][1]
4

0 回答 0