Java 如何在我的Android项目中实现anychart?

Java 如何在我的Android项目中实现anychart?,java,android,firebase,charts,anychart,Java,Android,Firebase,Charts,Anychart,我想用AnyChart的折线图从Firebase的实时数据库中提取数据,但我似乎无法使其工作。。。我一直在尝试使用给出的示例代码,但它似乎没有出现,代码似乎编译得很好,但图表没有出现。。。 似乎找不到发生了什么。我可以认为这是一个非常简单的错误,但我对android的了解非常基础,对AnyChart的了解是空的 这里是我试图实现线性图表示例的活动: import androidx.appcompat.app.AppCompatActivity; import android.content.In

我想用AnyChart的折线图从Firebase的实时数据库中提取数据,但我似乎无法使其工作。。。我一直在尝试使用给出的示例代码,但它似乎没有出现,代码似乎编译得很好,但图表没有出现。。。 似乎找不到发生了什么。我可以认为这是一个非常简单的错误,但我对android的了解非常基础,对AnyChart的了解是空的

这里是我试图实现线性图表示例的活动:

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
import com.anychart.AnyChart;
import com.anychart.AnyChartView;
import com.anychart.chart.common.dataentry.DataEntry;
import com.anychart.chart.common.dataentry.ValueDataEntry;
import com.anychart.charts.Cartesian;
import com.anychart.core.cartesian.series.Line;
import com.anychart.data.Mapping;
import com.anychart.data.Set;
import com.anychart.enums.Anchor;
import com.anychart.enums.MarkerType;
import com.anychart.enums.TooltipPositionMode;
import com.anychart.graphics.vector.Stroke;
import java.util.ArrayList;
import java.util.List;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

public class Activity2 extends AppCompatActivity {

    private FirebaseDatabase database = FirebaseDatabase.getInstance();
    private int fieldNum;
    TextView tvFieldNum;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_2);


        Intent cameFromAct1=getIntent();
        fieldNum = Integer.parseInt(cameFromAct1.getStringExtra("fieldNum"));
        String fieldName = "Campo"+fieldNum+"".trim();
        //tvFieldNum=(TextView)findViewById(R.id.tvFieldNum);
        //tvFieldNum.setText(fieldNum+"");


            AnyChartView anyChartView = findViewById(R.id.any_chart_view);
            anyChartView.setProgressBar(findViewById(R.id.progress_bar));

            Cartesian cartesian = AnyChart.line();

            cartesian.animation(true);

            cartesian.padding(10d, 20d, 5d, 20d);

            cartesian.crosshair().enabled(true);
            cartesian.crosshair()
                    .yLabel(true)
                    .yStroke("#000000",1.5,"10.5","1","1");
                    //.yStroke((Stroke) null, 1.5, null, (String) null, (String) null);

            cartesian.tooltip().positionMode(TooltipPositionMode.POINT);

            cartesian.title("Trend of Sales of the Most Popular Products of ACME Corp.");

            cartesian.yAxis(0).title("Number of Bottles Sold (thousands)");
            cartesian.xAxis(0).labels().padding(5d, 5d, 5d, 5d);

            List<DataEntry> seriesData = new ArrayList<>();
            seriesData.add(new CustomDataEntry("1986", 3.6, 2.3, 2.8));
            seriesData.add(new CustomDataEntry("1987", 7.1, 4.0, 4.1));
            seriesData.add(new CustomDataEntry("1988", 8.5, 6.2, 5.1));
            seriesData.add(new CustomDataEntry("1989", 9.2, 11.8, 6.5));
            seriesData.add(new CustomDataEntry("1990", 10.1, 13.0, 12.5));
            seriesData.add(new CustomDataEntry("1991", 11.6, 13.9, 18.0));
            seriesData.add(new CustomDataEntry("1992", 16.4, 18.0, 21.0));
            seriesData.add(new CustomDataEntry("1993", 18.0, 23.3, 20.3));
            seriesData.add(new CustomDataEntry("1994", 13.2, 24.7, 19.2));
            seriesData.add(new CustomDataEntry("1995", 12.0, 18.0, 14.4));
            seriesData.add(new CustomDataEntry("1996", 3.2, 15.1, 9.2));
            seriesData.add(new CustomDataEntry("1997", 4.1, 11.3, 5.9));
            seriesData.add(new CustomDataEntry("1998", 6.3, 14.2, 5.2));
            seriesData.add(new CustomDataEntry("1999", 9.4, 13.7, 4.7));
            seriesData.add(new CustomDataEntry("2000", 11.5, 9.9, 4.2));
            seriesData.add(new CustomDataEntry("2001", 13.5, 12.1, 1.2));
            seriesData.add(new CustomDataEntry("2002", 14.8, 13.5, 5.4));
            seriesData.add(new CustomDataEntry("2003", 16.6, 15.1, 6.3));
            seriesData.add(new CustomDataEntry("2004", 18.1, 17.9, 8.9));
            seriesData.add(new CustomDataEntry("2005", 17.0, 18.9, 10.1));
            seriesData.add(new CustomDataEntry("2006", 16.6, 20.3, 11.5));
            seriesData.add(new CustomDataEntry("2007", 14.1, 20.7, 12.2));
            seriesData.add(new CustomDataEntry("2008", 15.7, 21.6, 10));
            seriesData.add(new CustomDataEntry("2009", 12.0, 22.5, 8.9));

            Set set = Set.instantiate();
            set.data(seriesData);
            Mapping series1Mapping = set.mapAs("{ x: 'x', value: 'value' }");
            Mapping series2Mapping = set.mapAs("{ x: 'x', value: 'value2' }");
            Mapping series3Mapping = set.mapAs("{ x: 'x', value: 'value3' }");

            Line series1 = cartesian.line(series1Mapping);
            series1.name("Brandy");
            series1.hovered().markers().enabled(true);
            series1.hovered().markers()
                    .type(MarkerType.CIRCLE)
                    .size(4d);
            series1.tooltip()
                    .position("right")
                    .anchor(Anchor.LEFT_CENTER)
                    .offsetX(5d)
                    .offsetY(5d);

            Line series2 = cartesian.line(series2Mapping);
            series2.name("Whiskey");
            series2.hovered().markers().enabled(true);
            series2.hovered().markers()
                    .type(MarkerType.CIRCLE)
                    .size(4d);
            series2.tooltip()
                    .position("right")
                    .anchor(Anchor.LEFT_CENTER)
                    .offsetX(5d)
                    .offsetY(5d);

            Line series3 = cartesian.line(series3Mapping);
            series3.name("Tequila");
            series3.hovered().markers().enabled(true);
            series3.hovered().markers()
                    .type(MarkerType.CIRCLE)
                    .size(4d);
            series3.tooltip()
                    .position("right")
                    .anchor(Anchor.LEFT_CENTER)
                    .offsetX(5d)
                    .offsetY(5d);

            cartesian.legend().enabled(true);
            cartesian.legend().fontSize(13d);
            cartesian.legend().padding(0d, 0d, 10d, 0d);

            anyChartView.setChart(cartesian);
        }

        private class CustomDataEntry extends ValueDataEntry {

            CustomDataEntry(String x, Number value, Number value2, Number value3) {
                super(x, value);
                setValue("value2", value2);
                setValue("value3", value3);
            }

        }

    }

导入androidx.appcompat.app.appcompat活动;
导入android.content.Intent;
导入android.os.Bundle;
导入android.widget.TextView;
导入com.anychart.anychart;
导入com.anychart.AnyChartView;
导入com.anychart.chart.common.dataentry.dataentry;
导入com.anychart.chart.common.dataentry.ValueDataEntry;
导入com.anychart.charts.Cartesian;
导入com.anychart.core.cartesian.series.Line;
导入com.anychart.data.Mapping;
导入com.anychart.data.Set;
导入com.anychart.enums.Anchor;
导入com.anychart.enums.MarkerType;
导入com.anychart.enums.TooltipPositionMode;
导入com.anychart.graphics.vector.Stroke;
导入java.util.ArrayList;
导入java.util.List;
导入com.google.firebase.database.DataSnapshot;
导入com.google.firebase.database.DatabaseError;
导入com.google.firebase.database.FirebaseDatabase;
导入com.google.firebase.database.ValueEventListener;
公共类活动2扩展了AppCompatActivity{
私有FirebaseDatabase=FirebaseDatabase.getInstance();
私有int-fieldNum;
文本视图tvFieldNum;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
Intent cameFromAct1=getIntent();
fieldNum=Integer.parseInt(cameFromAct1.getStringExtra(“fieldNum”);
字符串fieldName=“Campo”+fieldNum+”.trim();
//tvFieldNum=(TextView)findViewById(R.id.tvFieldNum);
//tvFieldNum.setText(fieldNum+“”);
AnyChartView AnyChartView=findViewById(R.id.any\u图表\u视图);
anyChartView.setProgressBar(findViewById(R.id.progress_-bar));
笛卡尔笛卡尔=AnyChart.line();
笛卡尔动画(真);
笛卡尔填充法(10d,20d,5d,20d);
cartesian.crosshair()已启用(true);
笛卡尔十字线
.yLabel(对)
.yStroke(#000000)、1.5、10.5、1、1);
//.yStroke((笔划)null,1.5,null,(字符串)null,(字符串)null);
cartesian.tooltip().positionMode(TooltipPositionMode.POINT);
cartesian.title(“ACME Corp.最受欢迎产品的销售趋势”);
笛卡尔.雅克西斯(0).标题(“售出的瓶子数量(千)”;
笛卡尔.xAxis(0).labels().padding(5d,5d,5d,5d);
List seriesData=newarraylist();
seriesData.add(新的CustomDataEntry(“1986”,3.6,2.3,2.8));
seriesData.add(新的CustomDataEntry(“1987”,7.1,4.0,4.1));
seriesData.add(新的CustomDataEntry(“1988”,8.5,6.2,5.1));
seriesData.add(新的CustomDataEntry(“1989”,9.2,11.8,6.5));
seriesData.add(新的CustomDataEntry(“1990”,10.1,13.0,12.5));
seriesData.add(新的CustomDataEntry(“1991”,11.6,13.9,18.0));
seriesData.add(新的CustomDataEntry(“1992”、16.4、18.0、21.0));
seriesData.add(新的CustomDataEntry(“1993”,18.0,23.3,20.3));
seriesData.add(新的CustomDataEntry(“1994”,13.2,24.7,19.2));
seriesData.add(新的CustomDataEntry(“1995”,12.0,18.0,14.4));
seriesData.add(新的CustomDataEntry(“1996”,3.2,15.1,9.2));
seriesData.add(新的CustomDataEntry(“1997”,4.1、11.3、5.9));
seriesData.add(新的CustomDataEntry(“1998”,6.3,14.2,5.2));
seriesData.add(新的CustomDataEntry(“1999”,9.4,13.7,4.7));
seriesData.add(新的CustomDataEntry(“2000”,11.5,9.9,4.2));
seriesData.add(新的CustomDataEntry(“2001”,13.5,12.1,1.2));
seriesData.add(新的CustomDataEntry(“2002”,14.8,13.5,5.4));
seriesData.add(新的CustomDataEntry(“2003”,16.6,15.1,6.3));
seriesData.add(新的CustomDataEntry(“2004”,18.1,17.9,8.9));
seriesData.add(新的CustomDataEntry(“2005”,17.0,18.9,10.1));
seriesData.add(新的CustomDataEntry(“2006”,16.6,20.3,11.5));
seriesData.add(新的CustomDataEntry(“2007”,14.1,20.7,12.2));
seriesData.add(新的CustomDataEntry(“2008”,15.7,21.6,10));
seriesData.add(新的CustomDataEntry(“2009”、12.0、22.5、8.9));
Set=Set.instantiate();
集合数据(系列数据);
Mapping series1Mapping=set.mapAs(“{x:'x',value:'value'}”);
Mapping series2Mapping=set.mapAs(“{x:'x',value:'value2'}”);
Mapping series3Mapping=set.mapAs(“{x:'x',value:'value3'}”);
线系列1=笛卡尔线(系列1映射);
系列1.名称(“白兰地”);
序列1.hovered().markers().enabled(true);
series1.hovered().markers()
.type(MarkerType.CIRCLE)
.尺寸(4d);
系列1.工具提示()
.位置(“右”)
.锚定(锚定左_中心)
.offsetX(5d)
.offsetY(5d);
线系列2=笛卡尔线(系列2映射);
系列2.名称(“威士忌”);
序列2.hovered().markers().enabled(true);
series2.hovered().markers()
.type(MarkerType.CIRCLE)
.尺寸(4d);
系列2.工具提示()
.位置(“右”)
.锚定(锚定左_中心)
.offsetX(5d)
.offsetY(5d);
行系列3=
<ScrollView
    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=".Activity2"
    android:background="@drawable/background">
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
            <com.anychart.AnyChartView
                android:layout_weight="1"
                android:id="@+id/any_chart_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <ProgressBar
                android:layout_weight="1"
                android:id="@+id/progress_bar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>

</ScrollView>```