마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MPAndroidChart에 관련 질문입니다.

0 추천

파이어베이스에 저장된 데이터를 사용해서 MPAndroidChart 그래프를 만들려고 합니다.

코드는 다음과 같이 작성을 하였는데요

예제를 보고 막대그래프는 작성을 하였습니다만 여기서 파이어베이스에 저장된 데이터를 불러와서

그래프에 적용 시키는걸 모르겠습니다.

public class Activity_Graphy  extends Fragment implements OnChartValueSelectedListener {

    FirebaseDatabase database = FirebaseDatabase.getInstance();    // 데이터 베이스
    DatabaseReference ref = database.getReference();               // 데이터 베이스의 정보

    protected Typeface mTfRegular;
    protected Typeface mTfLight;
    protected BarChart mChart;
    View v;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        //inflate메소드는 XML데이터를 가져와서 실제 View객체로 만드는 작업을 합니다.
        v = inflater.inflate(R.layout.activity_graphy, container, false);

        ref.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    String key = snapshot.getKey();
                    Log.i(TAG, key);
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Log.w("Activity_Graphy", "loadPost:onCancelled", databaseError.toException());
                Log.w("Activity_Graphy", "loadPost:onCancelled", databaseError.toException());
                Log.w("Activity_Graphy", "loadPost:onCancelled", databaseError.toException());
            }
        });

        mChart = (BarChart) v.findViewById(R.id.barChart);
        ArrayList<BarEntry> barEntries = new ArrayList<>();
        barEntries.add(new BarEntry(10f, 0f));
        barEntries.add(new BarEntry(20f, 1f));
        barEntries.add(new BarEntry(30f, 2f));
        barEntries.add(new BarEntry(40f, 3f));

        ArrayList<String> labels = new ArrayList<String>();
        labels.add("January");
        labels.add("February");
        labels.add("March");
        labels.add("April");
        labels.add("May");
        labels.add("June");
        labels.add("July");
        labels.add("August");
        labels.add("September");
        labels.add("October");
        labels.add("November");
        labels.add("December");

        BarDataSet dataSet = new BarDataSet(barEntries,"# of Calls");

        BarData data = new BarData(dataSet);
        dataSet.setColors(ColorTemplate.COLORFUL_COLORS); //
        data.setBarWidth(9f);                                // 사용자 정의 막대 너비
        mChart.setData(data);
        mChart.setFitBars(true);                            // x 축을 모든 막대
        mChart.invalidate();                                 // 새로 고침
        /*dataset.setDrawCubic(true); //선 둥글게 만들기
        dataset.setDrawFilled(true); //그래프 밑부분 색칠*/

        mChart.setData(data);
        mChart.animateY(5000);

        return v;
    }

    @Override
    public void onValueSelected(Entry e, Highlight h) {

    }

    @Override
    public void onNothingSelected() {

    }
}

 

익명사용자 님이 2018년 7월 26일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...