android - Achartengine horizontal bar onclick issue -
i m implemeting horizontal barchart using achartengine, show in chart area when click on bar not give me value of selected bar.the seriesselction null.please find code below , suggest me m doing wrong.
private string[] mmonth = new string[] { "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" }; int[] x = { 0, 1, 2, 3, 4, 5, 6, 7 }; int[] income = { 100, 200, 370, 450, 500, 600, 700, 800 }; public static final string type = "type"; private xymultipleseriesdataset mdataset = getdemodataset(); private xymultipleseriesrenderer mrenderer = getdemorenderer(); private graphicalview mchartview; @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.xy_chart); if (mchartview == null) { linearlayout layout = (linearlayout) findviewbyid(r.id.chart); mchartview = chartfactory.getbarchartview(this, mdataset, mrenderer, type.default); mrenderer.setselectablebuffer(100); layout.addview(mchartview, new layoutparams( layoutparams.match_parent, layoutparams.match_parent)); } else { mchartview.repaint(); } mchartview.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub // handle click event on chart seriesselection seriesselection = mchartview.getcurrentseriesandpoint(); if (seriesselection == null) { toast.maketext(newtesthorizontal.this, "no chart element", toast.length_short).show(); } else { // display information of clicked point toast.maketext( newtesthorizontal.this, "chart element in series index " + seriesselection.getseriesindex() + " data point index " + seriesselection.getpointindex() + " clicked" + " closest point value x=" + seriesselection.getxvalue() + ", y=" + seriesselection.getvalue(), toast.length_short).show(); } } }); } private xymultipleseriesrenderer getdemorenderer() { // todo auto-generated method stub xyseriesrenderer incomerenderer = new xyseriesrenderer(); incomerenderer.setcolor(color.rgb(130, 130, 230)); incomerenderer.setfillpoints(true); incomerenderer.setlinewidth(2); incomerenderer.setchartvaluesspacing(15); incomerenderer.setdisplaychartvalues(true); incomerenderer.setchartvaluestextalign(align.center); xymultipleseriesrenderer multirenderer = new xymultipleseriesrenderer(); multirenderer.setorientation(orientation.vertical); multirenderer.setxlabels(1); multirenderer.setylabels(0); multirenderer.setbarspacing(0.9f); multirenderer.setbarwidth(30); multirenderer.setcharttitle("income chart"); multirenderer.setxtitle("year 2013"); multirenderer.setytitle("amount in dollars"); multirenderer.setzoombuttonsvisible(true); multirenderer.setinscroll(true); multirenderer.setshowgridy(true); //multirenderer.setxlabelspadding(10); multirenderer.setylabelspadding(10); multirenderer.setinscroll(true); multirenderer.setxaxismin(-0.5); multirenderer.setxaxismax(7); multirenderer.setyaxismin(10); multirenderer.setcharttitletextsize(15); multirenderer.setlabelstextsize(10); multirenderer.setlegendtextsize(15); multirenderer.setaxistitletextsize(15); multirenderer.setmargins(new int[] {10, 20, 20, 10}); multirenderer.setyaxismax(3000); multirenderer.setclickenabled(true); multirenderer.setshowgridx(true); multirenderer.setshowgridy(true); (int = 0; < x.length; i++) { multirenderer.addxtextlabel(i, mmonth[i]); } multirenderer.addseriesrenderer(incomerenderer); return multirenderer; } private xymultipleseriesdataset getdemodataset() { xyseries incomeseries = new xyseries("income"); (int = 0; < x.length; i++) { incomeseries.add(i, income[i]); } xymultipleseriesdataset dataset = new xymultipleseriesdataset(); dataset.addseries(incomeseries); return dataset; } }
Comments
Post a Comment