我使用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
任何人都可以告诉我为什么会这样吗?
感谢。
答案 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之类的框架之前,我会衷心建议你先学习这门语言。