Geocoder保持真实的回归

时间:2011-10-26 23:22:56

标签: java android geocoding

我使用GeoCoder的应用程序不断将字符串返回true。这是我的代码。

public boolean address(){
      Geocoder geoCoder = 
            new Geocoder
            (getBaseContext(), Locale.getDefault());

            try {
                List<Address> addresses = geoCoder.getFromLocation(LocationManagerHelper.getLatitude()/1E6, LocationManagerHelper.getLongitude()/1E6, 1);

                String addes = "";
                if (addresses.size() > 0) 
                {
                    for (int i=0; i<addresses.get(0).getMaxAddressLineIndex(); 
                         i++)
                       addes += addresses.get(0).getAddressLine(i) + "\n";
                }
            }
            catch (IOException e) {                
                e.printStackTrace();
            }
            return true;


 }

我将其称为文本视图。

add.append(""+ address()
            + '\n');

它有效但除了它没有显示地址,而是显示true

任何人都可以告诉我为什么会这样吗?

感谢。

2 个答案:

答案 0 :(得分:2)

您需要使用return关键字返回地址字符串,并将方法返回类型更改为String:

public String address(){
    Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
    String result = "";

    try {
        List<Address> addresses = geoCoder.getFromLocation(LocationManagerHelper.getLatitude()/1E6, LocationManagerHelper.getLongitude()/1E6, 1);

        if (addresses.size() > 0) 
        {
            for (int i=0; i<addresses.get(0).getMaxAddressLineIndex(); i++)
               result+= addresses.get(0).getAddressLine(i) + "\n";
        }
    }
    catch (IOException e) {                
        e.printStackTrace();
    }

    return result;
 }

答案 1 :(得分:1)

您需要在<{1}}块之外初始化结果String变量,然后将方法的返回类型更改为try并确实返回结果{{用地址中的行增加后的变量。

String

但是,实际上,这是基本的 Java编程,所以在钻研Android之类的框架之前,我会衷心建议你先学习这门语言。