Pie and Doughnut series problem in fragment

6 posts, 0 answers
  1. Jay
    Jay avatar
    18 posts
    Member since:
    May 2014

    Posted 25 Jul 2014 Link to this post

    not able to load data in pie series
  2. Jay
    Jay avatar
    18 posts
    Member since:
    May 2014

    Posted 25 Jul 2014 in reply to Jay Link to this post

    here is my example code

    public RadPieChartView pieChartView()
        {RadPieChartView doughnutchartView=null;

            try
            {
                 initData();
                
                
                doughnutchartView = new RadPieChartView(getActivity());

                DoughnutSeries doughnutSeries = new DoughnutSeries(getActivity());

                doughnutSeries.setValueBinding(new DataPointBinding()
                {
                    @Override
                    public Object getValue(Object o)
                    {
                        return ((MonthResults) o).getResult();
                    }
                });
                doughnutSeries.setData(this.monthResults);

                doughnutchartView.getSeries().add(doughnutSeries);
                
                
            } catch (Exception e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return doughnutchartView;

        }



    private void initData() {
            
        
            
            monthResults = new ArrayList<MonthResults>();
            monthResults.add(new MonthResults("Jan", 25,10));
            monthResults.add(new MonthResults("Feb", 30,10));
            monthResults.add(new MonthResults("Mar", 40,20));
            
    //        monthResults.add(new MonthResults("Mar", 15));
    //        monthResults.add(new MonthResults("Apr", 17));
    //        monthResults.add(new MonthResults("May", 21));
    //        monthResults.add(new MonthResults("Jun", 28));
    //        monthResults.add(new MonthResults("Jul", 32));
    //        monthResults.add(new MonthResults("Aug", 48));
    //        monthResults.add(new MonthResults("Sep", 51));
    //        monthResults.add(new MonthResults("Oct", 42));
    //        monthResults.add(new MonthResults("Nov", 57));
    //        monthResults.add(new MonthResults("Dec", 60));

        }

        public class MonthResults {
            private String month;
            private double result,resultY;

            public double getResultY() {
                return resultY;
            }





            public void setResultY(double resultY) {
                this.resultY = resultY;
            }





            public MonthResults(String month, double i,double d) {
                this.setMonth(month);
                this.setResult(i);
                this.setResultY(d);
            }

            
            


            public double getResult() {
                return result;
            }





            public void setResult(double result) {
                this.result = result;
            }





            public String getMonth() {
                return month;
            }


            public void setMonth(String month) {
                this.month = month;
            }


            }
  3. DevCraft banner
  4. Antony Jekov
    Admin
    Antony Jekov avatar
    88 posts

    Posted 25 Jul 2014 Link to this post

    Hello Jay,

    Thank you for contacting the Android team.

    I reviewed your sample code and I didn't find anything wrong with it. I got a doughnut chart with 3 values visible on my screen.

    The android platform might sometimes prove to be tricky when debugging. I recommend you to go from the bottom up. First make sure you get the wanted result in the most simple way possible:
    public class MainActivity extends ActionBarActivity {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(pieChartView());
        }
     
        public RadPieChartView pieChartView() {
            RadPieChartView doughnutchartView = null;
     
            try {
                initData();
     
     
                doughnutchartView = new RadPieChartView(this);
     
                DoughnutSeries doughnutSeries = new DoughnutSeries(this);
     
                doughnutSeries.setValueBinding(new DataPointBinding() {
                    @Override
                    public Object getValue(Object o) {
                        return ((MonthResults) o).getResult();
                    }
                });
                doughnutSeries.setData(this.monthResults);
     
                doughnutchartView.getSeries().add(doughnutSeries);
     
     
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return doughnutchartView;
     
        }
     
        List<MonthResults> monthResults;
     
        private void initData() {
            monthResults = new ArrayList<MonthResults>();
            monthResults.add(new MonthResults("Jan", 25, 10));
            monthResults.add(new MonthResults("Feb", 30, 10));
            monthResults.add(new MonthResults("Mar", 40, 20));
     
    //        monthResults.add(new MonthResults("Mar", 15));
    //        monthResults.add(new MonthResults("Apr", 17));
    //        monthResults.add(new MonthResults("May", 21));
    //        monthResults.add(new MonthResults("Jun", 28));
    //        monthResults.add(new MonthResults("Jul", 32));
    //        monthResults.add(new MonthResults("Aug", 48));
    //        monthResults.add(new MonthResults("Sep", 51));
    //        monthResults.add(new MonthResults("Oct", 42));
    //        monthResults.add(new MonthResults("Nov", 57));
    //        monthResults.add(new MonthResults("Dec", 60));
        }
     
        public class MonthResults {
            private String month;
            private double result, resultY;
     
            public double getResultY() {
                return resultY;
            }
     
     
            public void setResultY(double resultY) {
                this.resultY = resultY;
            }
     
     
            public MonthResults(String month, double i, double d) {
                this.setMonth(month);
                this.setResult(i);
                this.setResultY(d);
            }
     
     
            public double getResult() {
                return result;
            }
     
     
            public void setResult(double result) {
                this.result = result;
            }
     
     
            public String getMonth() {
                return month;
            }
     
     
            public void setMonth(String month) {
                this.month = month;
            }
     
     
        }
    }
    Here is your code inside a simple activity without any use of xml or fragments. I am just calling the setContentView(pieChartView()); so that I can make sure this code works.

    It apparently does on my side, so I would go from there and check first the xml and the way the chart is being added to the layout, then the way the fragment is being set and added to the context. Somewhere there lies the issue.

    If you are creating the chart in the code rather that the xml layout, you might want to specify the layout parameters of the chart when adding it to the layout. The chart needs to be set to MATCH_PARENT for both width and height and the parent must not depend on the chart to know its size.

    I would be happy to help you out further if you need me to, but I will need to see some more of your code, since the snippet you sent me is perfectly fine.

    Let me know how this goes.

    Thank you for your time and all best! 

    Regards,
    Antony Jekov
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
  5. Jay
    Jay avatar
    18 posts
    Member since:
    May 2014

    Posted 25 Jul 2014 in reply to Antony Jekov Link to this post

    Thank u for the reply

    i am using Fragment so it only load in  View onCreateView method not in its child view like RelativeLayout or any sub View class

    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View view=null;
            
            view =inflater.inflate(R.layout.fragment_main, null);
            view=pieChartView();
            return view;
            
            
        }

    please help me out

    Regards,
    Jay
  6. Antony Jekov
    Admin
    Antony Jekov avatar
    88 posts

    Posted 28 Jul 2014 Link to this post

    Hello Jay,

    You need to create a new fragment and to add it to your activity like this:
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            getSupportFragmentManager().beginTransaction().add(R.id.container, new MyFragment()).commit();
        }
    Then you need to return the view you wish to display in this fragment, in your case this would be the chart itself. Use this in your fragment:
    @Override
            public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
                return pieChartView();
            }

    This works as expected on my side. If you have any additional struggles I recommend you check out the fragments section in the Android documentation - Fragment class 

    I hope this helps. Please feel free to add to this ticket, should you have any additional struggles.

    Thank you for your time and all best!

    Regards,
    Antony Jekov
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
  7. Jay
    Jay avatar
    18 posts
    Member since:
    May 2014

    Posted 29 Jul 2014 in reply to Antony Jekov Link to this post

    thank u so much ,
    it helps me a lot
Back to Top
DevCraft banner