如何创建位置矢量?

时间:2016-05-17 20:09:54

标签: android vector location

我有一个应用程序,可以从谷歌服务获得定期的位置更新。这工作正常。 现在,我想将每个位置存储在一个位置向量中:

Vector vectorLocations = new Vector();

onLocationChanged我这样做是为了添加新位置:

@Override
public void onLocationChanged(Location location) {

    mLastUpdateTime = DateFormat.getTimeInstance().format(new Date());
    latitud.setText(String.valueOf(location.getLatitude()));
    longitud.setText(String.valueOf(location.getLongitude()));
    tiempo.setText(mLastUpdateTime);
    velocidad.setText(String.valueOf(location.getSpeed()));
    altura.setText(String.valueOf(location.getAltitude()));
    vectorLocations.addElement(location); 
    ntextView.setText(String.valueOf(vectorLocations.lastIndexOf(location)));

}

但是现在我想得到例如位置3,所以我这样做:

Location positionthree = vectorLocations.elementAt(3);

但我得到错误不兼容的类型:

enter image description here

3 个答案:

答案 0 :(得分:1)

如果错误是找到Object而不是Location,您可以将对象转换为如此位置:

Location positionthree = (Location) vectorLocations.elementAt(3);

或者更简单的方法是创建ArrayListLocation变量并访问它们。这是你可以做的事情:

ArrayList<Location> allLocations = new ArrayList<>();
// On location change
allLocations.add(location);

// When you want to access them
Location positionThree = allLocations.get(3);

希望它有所帮助!

答案 1 :(得分:0)

您需要将elementAt()返回的对象转换为位置类型,如下所示

 Location positionthree = (Location) vectorLocations.elementAt(3);

答案 2 :(得分:-1)

最好使用ArrayList。

声明:

ArrayList<Location> locations = new ArrayList<>();        

添加元素:

locations.add(location);

要访问位置处的元素:

Location positionThree = locations.get(3);        

但请记住,函数.get()中的索引3实际上是指位置4,因为索引从0开始。