【问题标题】:How to get the first value of Arraylist如何获取Arraylist的第一个值
【发布时间】:2014-09-17 10:20:12
【问题描述】:

我正在制作地图 v2。我想将纬度和经度转换为文本地址。所以我使用 Geocoder 类来定位地址。现在的问题是当我使用 List 时,它提供了很多令人困惑的位置。它可能是位置列表。我只想检索其中的第一个位置并将该位置传递给另一个活动。我怎样才能做到这一点?请帮忙。这是紧急情况。以下是我的代码:

  try {
    Geocoder gcd = new Geocoder(this, Locale.getDefault());
      List<Address> addresses = gcd.getFromLocation( dmylats,  dmylong,  1);         

      if (addresses.size() > 0) 
          Toast.makeText(this, "You are at "+addresses,Toast.LENGTH_LONG).show();
} catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

我只想要列表中的第一个值。

【问题讨论】:

  • 那么addresses.get(0)有什么问题?
  • addresses.get(addresses.size() - 1 ) ?
  • 请明确您想要哪个值?第一个还是最后一个?
  • @dhruti 很抱歉这个不方便的问题...我想要第一个值。并将该值传递给另一个活动..plz你能帮我吗..?
  • @mystic_knight 这意味着arraylist根本没有数据。请调试并检查您没有获取数据的原因。

标签: java android eclipse google-maps android-activity


【解决方案1】:

这可以通过

存档
addresses.get(addresses.size()-1)

编辑:在 OP 的编辑之前,标题说“最后一个值”...

回答新问题:

addresses.get(0)

【讨论】:

  • 我怎样才能将该地址字符串传递给另一个活动...请告诉我你是否知道
  • @mystic_knight 你应该为此打开一个新问题。
【解决方案2】:
addresses.get(addresses.size()-1)

【讨论】:

    【解决方案3】:
    try {
                // Get the location manager
    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
                    Criteria criteria = new Criteria();
                    bestProvider = locationManager.getBestProvider(criteria, false);
                    Location location = locationManager
                            .getLastKnownLocation(bestProvider);
                    double lat = location.getLatitude();
                    double lon = location.getLongitude();
                    Geocoder gc = new Geocoder(this);
                    List<Address> lstAdd = gc.getFromLocation(lat, lon, 1);
                    Address ad = lstAdd.get(0);
                    String str = ad.getAddressLine(0);
                TToast.makeText(this, "Your current location is " + str,
                        Toast.LENGTH_LONG).show();
    
    } catch (Exception e) {}
    

    【讨论】:

    • 它给出了一个错误:09-17 06:35:13.666: E/AndroidRuntime(1602): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
    • 表示数组列表没有数据。请检查您的代码和清单权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多