条形图到webservice

时间:2016-09-19 05:13:44

标签: android web-services

我正在尝试通过网络服务制作条形图,但我遇到了问题。条形图页面显示但没有条形图。所以请任何人帮助我。 提前谢谢....

我的代码在这里:

  
    

图表活动

  
 public class Chart_MainActivity extends Activity
{
   /// EditText edt1, edt2;
    // TextView txt_1;
    Button btn;
    ArrayList<String> result;
    //String x,y;
    String x = "", y = "";

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainn);

//        edt1 = (EditText) findViewById(R.id.edt1_date1);
//        edt2 = (EditText) findViewById(R.id.edt_date2);
        btn = (Button) findViewById(R.id.button_invoke);

        result = new ArrayList<String>();

        btn.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {

             //   result.addAll(getTMSChart(edt1.getText().toString(), edt2.getText().toString()));

                  result.add(x);
                  result.add(y);
                Intent in = new Intent(getApplicationContext(), NextActivity.class);
                in.putExtra("gotonextpageX", result.get(0));
                in.putExtra("gotonextpageY", result.get(1));

                startActivity(in);
            }
        });}

    private ArrayList<String> getTMSChart(String FromDate, String ToDate)
    {

     // txt_1 = (TextView)findViewById(R.id.textView1);
        System.setProperty("http.keepAlive", "false");
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

        envelope.dotNet = true;

        String NAMESPACE = "http://tempuri.org/";
        String URL = "http://smartData/weight.asmx";
        String METHOD = "weight";

        SoapObject request = new SoapObject(NAMESPACE, METHOD);
        request.addProperty("FromDate", FromDate);
        request.addProperty("ToDate", ToDate);

        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

        String x = "", y = "";

        ArrayList<String> stringResult = new ArrayList<String>();

        try
        {
            androidHttpTransport.call(NAMESPACE + METHOD, envelope);
            SoapObject result = (SoapObject) envelope.bodyIn;
            SoapObject root = (SoapObject) ((SoapObject) (result).getProperty(0)).getProperty("NewDataSet");
            int tablesCount = root.getPropertyCount();

            for (int i = 0; i < tablesCount; i++)
            {
                SoapObject table = (SoapObject) root.getProperty(i);
                int propertyCount = table.getPropertyCount();

                for (int j = 0; j < propertyCount; j++)
                {

                    stringResult.add(table.getProperty("Name").toString());
                    stringResult.add(table.getProperty("Value").toString());

                    //  stringResult.add(table.getPropertyAsString("Margin_Percent").toString());
                    //  freightRate = Integer.parseInt(table.getPropertyAsString("Freight_Rate"));

                }
            }
        }
        catch (ArrayIndexOutOfBoundsException e)
        {}
        catch(Exception e)
        {}

        return stringResult;
    }    }
  
    

下一个活动:

  
public class NextActivity extends Activity
{
    double x,y;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainn1);

        Bundle extras = getIntent().getExtras();
        if(extras != null)
        {
            x = extras.getDouble("gotonextpageX");
            y = extras.getDouble("gotonextpageY");
        }
        else
        {}

        final GraphicalView gv =createIntent();
        RelativeLayout rl=(RelativeLayout)findViewById(R.id.rlt);
        rl.addView(gv);
    }

    public GraphicalView createIntent()
    {

        String[] titles = new String[] { "Orders profit"};

        List<double[]> values = new ArrayList<double[]>();
        values.add(new double[] {x,x,x});
        values.add(new double[] {y,y,y});


        int[] colors = new int[] { Color.parseColor("#77c4d3")};

        XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
        renderer.setOrientation(XYMultipleSeriesRenderer.Orientation.HORIZONTAL);

        setChartSettings(renderer,"","Order number","Freight Rate",0.5,12.5, 0, 1000, Color.GREEN, Color.GREEN);

        renderer.setXLabels(1);
        renderer.setYLabels(5);

        renderer.setPanEnabled(true, false);

    /*renderer.addXTextLabel(1, "Jan");
    renderer.addXTextLabel(2, "Feb");
    renderer.addXTextLabel(3, "Mar");
    renderer.addXTextLabel(4, "Apr");
    renderer.addXTextLabel(5, "May");
    renderer.addXTextLabel(6, "Jun");
    */

        int length = renderer.getSeriesRendererCount();

        for (int i = 0; i < length; i++)
        {
            SimpleSeriesRenderer seriesRenderer = renderer.getSeriesRendererAt(i);
            seriesRenderer.setDisplayChartValues(true);
        }

        final GraphicalView grfv = ChartFactory.getBarChartView(NextActivity.this, buildBarDataset(titles, values), renderer, BarChart.Type.DEFAULT);
        return grfv;
    }

    protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors)
    {

        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

        renderer.setAxisTitleTextSize(16);
        renderer.setChartTitleTextSize(20);

        renderer.setLabelsTextSize(15);
        renderer.setLegendTextSize(15);

        renderer.setBarSpacing(1);

        renderer.setMarginsColor(Color.parseColor("#0E120E"));
        renderer.setXLabelsColor(Color.WHITE);
        renderer.setYLabelsColor(0,Color.WHITE);

        renderer.setApplyBackgroundColor(true);
        renderer.setBackgroundColor(Color.parseColor("#000000"));

        int length = colors.length;

        for (int i = 0; i < length; i++)
        {
            SimpleSeriesRenderer r = new SimpleSeriesRenderer();
            r.setColor(colors[i]);
            r.setChartValuesSpacing(-90);
            r.setChartValuesSpacing(15);
            renderer.addSeriesRenderer(r);
        }
        return renderer;
    }

    protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<double[]> values)
    {
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        int length = titles.length;

        for (int i = 0; i < length; i++)
        {
            CategorySeries series = new CategorySeries(titles[i]);
            double[] v = values.get(i);
            int seriesLength = v.length;

            for (int k = 0; k < seriesLength; k++)
            {
                series.add(v[k]);
            }
            dataset.addSeries(series.toXYSeries());
        }

        return dataset;
    }

    protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle,
                                    String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor,int labelsColor)
    {

        renderer.setChartTitle(title);
        renderer.setYLabelsAlign(Paint.Align.RIGHT);

        renderer.setXTitle(xTitle);
        renderer.setYTitle(yTitle);

        renderer.setXAxisMin(xMin);
        renderer.setXAxisMax(xMax);
        renderer.setYAxisMin(yMin);
        renderer.setYAxisMax(yMax);

        renderer.setMargins(new int[] { 10, 65, 10, 15 });

        renderer.setAxesColor(axesColor);
        renderer.setLabelsColor(labelsColor);
    } }

我收到了一个未知的缓冲区错误... plzzz帮帮我

1 个答案:

答案 0 :(得分:0)

下一个活动:

更改以下行

  x = extras.getString("gotonextpageX");
  y = extras.getString("gotonextpageY");

  x = Double.valueOf(extras.getString("gotonextpageX"));
  y = Double.valueOf(extras.getString("gotonextpageY"));