如何将字符串值转换为整数数组列表 - Android

3
我希望能够从3个EditText字段中输入3个数据,并将其显示为条形图。
以下是我的代码部分。请给我解决这些错误的方案...
我尝试使用此代码获取此条形图。但它不起作用。我注释了//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

}

我在代码段中注释了//ERROR POINT。 当我给这个点赋值时,出现了问题。

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

那么它应该可以工作了..但我想使用EditText框来输入这些值。


你收到了一个错误吗? - Madhawa Priyashantha
取一个整数数组 income 和 try。 - Shoaib Chikate
你确定在输入edittext后获取了t1.getText().toString()的值吗? - Deepzz
2
定义_"NOT WORKING"_。 - DnR
1
我放了整个代码.. 现在给我一个解决方案。 - Machan Max
7个回答

3

尝试这行代码

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

2
尝试使用此替换。
    int x1 = Integer.parseInt(t1.getText().toString()).getIntValue();

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()));

这个不起作用。我放了整个代码。请给我一个解决方案。 - Machan Max
你确定从EditText中正确获取了值吗?你尝试过使用Log来查看x1、x2、x3的值是否符合预期吗?你的for循环也使用了x而不是income数组来检查长度,看看这是否是问题所在。 - Kirtan

1
将您的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[] income = {x1 ,x2, x3};

}

这个不起作用。我放了整个代码。请给我一个解决方案。 - Machan Max

1

如果你想从 Integer 转换为 int,那么你应该编写如下代码

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

然后在某处使用整数值。

1
只需替换您的此代码。
int x1 = Integer.parseInt(t1.getText().toString());
 int x2 = Integer.parseInt(t2.getText().toString());
 int x3 = Integer.parseInt(t3.getText().toString());

来自表单

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

1

如评论中所述,需要一个整数数组income-: Integer[] income = {x1,x2,x3};

然后可以使用Arrays.asList(income)


告诉我如何实现 arrays.asList(income)。 - Machan Max
你不需要实现,asList是Arrays类的一个实用方法,该类位于java.util包中。 - Puneet_Techie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接