我在emaluator中显示谷歌地图..
以下是代码段..
在给定的代码段中,我添加了一个使用xml的编辑框,并在此编辑框中输入了一个用户输入要搜索的位置的名称。
问题是我无法获取用户输入的名称并搜索相应位置。
Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
try {
go.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
result = edit.getText().toString();
}
});
List<Address> addresses = geoCoder.getFromLocationName(result, 5);
String add = "";
if (addresses.size() > 0) {
p = new GeoPoint(
(int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
mc.animateTo(p);
mc.setZoom(17);
mapView.invalidate();
}
} catch (IOException e) {
e.printStackTrace();
}
我使用过地理编码器..
这是xml代码段..
<EditText
android:id="@+id/edit"
android:layout_width="257px"
android:layout_height="wrap_content"
android:textSize="18sp"
>
</EditText>
<Button
android:id="@+id/button"
android:layout_width="44px"
android:layout_height="33px"
android:text="GO"
>
</Button>
你能找到我的错误并纠正我吗?
答案 0 :(得分:0)
正如您所说,您无法获取用户输入的名称我将提供此作为获取用户输入文本的方法
private string getUserSearch(){
EditText query = (EditText) findViewById(R.id.edit);
return query.getText();
}
然后这样做
public void onClick(View arg0) {
result = getUserSearch();
}
答案 1 :(得分:0)
不是以下代码块
List<Address> addresses = geoCoder.getFromLocationName(result, 5);
String add = "";
if (addresses.size() > 0) {
p = new GeoPoint(
(int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
mc.animateTo(p);
mc.setZoom(17);
mapView.invalidate();
}
} catch (IOException e) {
e.printStackTrace();
}
应该在onClick
方法内?目前你在onClick中所做的只是更新result
参数的值。在那之后没有调用地址部分的搜索和显示