如何从Android中的Integer对象访问整数值

时间:2011-11-20 05:11:20

标签: android charts integer

我正在尝试将数据(特别是浮动)添加到我使用achartengine创建的条形图中。我创建了一个HashMap来保存键/值,但是我无法访问Integer的实际值(即Integer.valueOf)。见下文:

    private XYMultipleSeriesDataset getBarDemoDataset() {
       XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
       HashMap<String, Integer> myMap = AppStatus.mDayMap;
       Iterator it = myMap.entrySet().iterator();
       for (int i = 0; i < 1; i++) {
          CategorySeries series = new CategorySeries("Demo series " + (i + 1));
          while(it.hasNext()){
             Map.Entry pairs = (Map.Entry)it.next();
             // I should be able to code pairs.getValue().valueOf() but I get an error - the value seems to be a string below.
             series.add((Double)pairs.getValue()); 
          }

      dataset.addSeries(series.toXYSeries());
   }
   return dataset;
}

2 个答案:

答案 0 :(得分:1)

解决编译问题

出错我假设你的意思是试图将一个Integer强制转换为Double所产生的编译错误...数字之间的这种类型转换只能自动地与原始类型一起使用。

更改

series.add((Double)pairs.getValue());  

series.add(new Double(pairs.getValue()));  

解决了编译问题。

关于使用valueOf()

valueOf()主要用于将String值转换为数字类型。表单的重载版本:

Double.valueOf(double d)

是自动装箱前几天的保留。由于您的数据(Map条目的值侧)已经是数字,因此在此上下文中无需使用valueOf()

答案 1 :(得分:0)

Integer i = 42;
double d = i.doubleValue();

所以:

while (it.hasNext()) {
    Map.Entry entry = (Map.Entry) it.next();
    series.add(entry.getValue().doubleValue()); 
}

虽然我认为应该订购系列图表,但在迭代HashMap时不会出现这种情况。