3

I want to input 3 data From 3 EditText fields and it will want to display as a Bar-Chart.

Here is my code section. Give me a solution for these errors..

I tried to get this Bar Chart using this code. But it is not working. i Comment The //ERROR POINT

   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.getfromdb);

    final String[] mMonth = new String[] {
            "Jan", "Feb" , "Mar", "Apr", "May", "Jun",
            "Jul", "Aug" , "Sep", "Oct", "Nov", "Dec"
        };

    final EditText t1 =(EditText)findViewById(R.id.textView1);
    final EditText t2 =(EditText)findViewById(R.id.textView2);
    final EditText t3 =(EditText)findViewById(R.id.textView3);


    Button btnChart = (Button) findViewById(R.id.btnView);  

    int x1 = Integer.parseInt(t1.getText().toString());
    int x2 = Integer.parseInt(t2.getText().toString());
    int x3 = Integer.parseInt(t3.getText().toString());

     btnChart.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                openChart();

            } 
              private void openChart() {

                    int x1 = Integer.parseInt(t1.getText().toString());
                    int x2 = Integer.parseInt(t2.getText().toString());
                    int x3 = Integer.parseInt(t3.getText().toString());

                int[] x = { 0,1,2 };
                int [] income = {x1 ,x2, x3};    //ERROR POINT


                XYSeries incomeSeries = new XYSeries("Pulse Rate");                 
                XYSeries expenseSeries = new XYSeries("");

                for(int i=0;i<x.length;i++){            
                    incomeSeries.add(i,income[i]);

                }

                XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
                dataset.addSeries(incomeSeries);
                dataset.addSeries(expenseSeries);       


                XYSeriesRenderer incomeRenderer = new XYSeriesRenderer();
                incomeRenderer.setColor(Color.rgb(130, 130, 230));
                incomeRenderer.setFillPoints(true);
                incomeRenderer.setLineWidth(2);
                incomeRenderer.setDisplayChartValues(true);


                XYSeriesRenderer expenseRenderer = new XYSeriesRenderer();
                expenseRenderer.setColor(Color.rgb(220, 80, 80));
                expenseRenderer.setFillPoints(true);
                expenseRenderer.setLineWidth(2);
                expenseRenderer.setDisplayChartValues(true);        


                XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
                multiRenderer.setXLabels(0);
                multiRenderer.setChartTitle("Pulse Chart");
                multiRenderer.setXTitle("Pulse rate");
                multiRenderer.setYTitle("Days");
                multiRenderer.setZoomButtonsVisible(true);              
                for(int i=0; i< x.length;i++){
                    multiRenderer.addXTextLabel(i, mMonth[i]);          
                }       

                multiRenderer.addSeriesRenderer(incomeRenderer);
                multiRenderer.addSeriesRenderer(expenseRenderer);

                Intent intent = ChartFactory.getBarChartIntent(getBaseContext(), dataset, multiRenderer, Type.DEFAULT);

                startActivity(intent);

            }
        });

}

private void setListAdapter(SimpleCursorAdapter adapter) {
    // TODO Auto-generated method stub

}

I Comment the //ERROR POINT in code segment. When i give the values this point as a

    int [] income = {60 ,40, 50};             //It should Be working

Then it Should be Working.. But i want to put these values Using EditText boxes.

5
  • did you get a error? Commented Nov 5, 2014 at 6:04
  • Take Integer[] income and try. Commented Nov 5, 2014 at 6:04
  • Are you sure u are taking value of t1.getText().toString() after entering it in edittext Commented Nov 5, 2014 at 6:06
  • 2
    define "NOT WORKING" Commented Nov 5, 2014 at 6:08
  • 1
    I put the whole code.. Now give me a solution Commented Nov 5, 2014 at 7:24

7 Answers 7

3

try to this line

int x1 = Integer.parseInt(t1.getText().toString());
Sign up to request clarification or add additional context in comments.

Comments

2

try to this repalcing

    int x1 = Integer.parseInt(t1.getText().toString()).getIntValue();

Comments

1

As mentioned in the comments, take an Integer array of income -: Integer[] income = {x1,x2,x3};

Than you can use Arrays.asList(income)

2 Comments

tell me how to implement arrays.asList(income)
You dont need to implement, asList is a Utility method of the Arrays class which is in java.util package.
1

Change your openChart method as follows:

private void openChart() {
    int x1 = Integer.parseInt(t1.getText().toString());
    int x2 = Integer.parseInt(t2.getText().toString());
    int x3 = Integer.parseInt(t3.getText().toString());

    int[] income = {x1 ,x2, x3};

}

1 Comment

This is not working. i put the the Whole code. Please give me a solution
1

if you want to convert from Integer to int then you should write code like

int x1 = Integer.parseInt(t1.getText().toString()).getIntValue();

then use the int value somewhere

Comments

1
final EditText t1 =(EditText)findViewById(R.id.textView1);
final EditText t2 =(EditText)findViewById(R.id.textView2);
final EditText t3 =(EditText)findViewById(R.id.textView3);

ArrayList<Integer> integersList = new ArrayList<Integer>();
integersList.add(Integer.parseInt(t1.getText().toString()));
integersList.add(Integer.parseInt(t2.getText().toString()));
integersList.add(Integer.parseInt(t3.getText().toString()));

2 Comments

This is not working. i put the the Whole code. Please give me a solution
Are you sure you are getting values correctly from EditText ? did you tried placing Log to see if values you are getting for x1,x2,x3 are as expected ? your for loop is also using x instead of income array to check the length see if its the problem.
1

Just replace your this code

int x1 = Integer.parseInt(t1.getText().toString());
 int x2 = Integer.parseInt(t2.getText().toString());
 int x3 = Integer.parseInt(t3.getText().toString());

form this

                int x1 = Integer.parseInt(t1.getText().toString()).getIntValue();;
                int x2 = Integer.parseInt(t2.getText().toString()).getIntValue();;
                int x3 = Integer.parseInt(t3.getText().toString()).getIntValue();;

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.