我是Android的新手,正致力于使用Google Maps V2开发应用。我设计了地图,每件事都可以。我在顶部放置了一个文本框和按钮,帮助用户搜索他想要的任何位置,并将此底部方法用于搜索操作。当用户输入无效的问题时,应用程序崩溃了。 我想在这种方法中添加条件,当用户输入无效位置时,会出现吐司(请输入有效位置)
请帮帮我
public void search(View v) throws IOException{
EditText textbox = (EditText) findViewById(R.id.editText1);
String location = textboxt.getText().toString();
if (location.length() == 0) {
Toast.makeText(this, "Please Enter a location", Toast.LENGTH_SHORT).show();
return;
}
Geocoder gc = new Geocoder(this);
List<Address> list = gc.getFromLocationName(location, 1);
Address add = list.get(0);
String locality = add.getLocality();
double lat = add.getLatitude();
double lng = add.getLongitude();
LatLng ll = new LatLng(lat, lng);
Gmap.moveCamera(CameraUpdateFactory.newLatLng(ll));
// zoom in Google map
Gmap.animateCamera(CameraUpdateFactory.zoomTo(20));
答案 0 :(得分:1)
如果我没有错,你可以List<Address> list
与list.size()==0
核对,然后就可以了。试试:
try{
if(list.size()!=0){
//Your code
}else{
//Error Message
}
}catch(Exception e){
e.printStackTrace();
}
更新:尝试以一种方式实现您的代码:
public void search(View v){
EditText textbox = (EditText) findViewById(R.id.editText1);
String location = textboxt.getText().toString();
if (location.length() == 0) {
Toast.makeText(this, "Please Enter a location", Toast.LENGTH_SHORT).show();
}else{
try{
Geocoder gc = new Geocoder(this);
List<Address> list = gc.getFromLocationName(location, 1);
if(list.size()!=0){
Address add = list.get(0);
String locality = add.getLocality();
double lat = add.getLatitude();
double lng = add.getLongitude();
LatLng ll = new LatLng(lat, lng);
Gmap.moveCamera(CameraUpdateFactory.newLatLng(ll));
// zoom in Google map
Gmap.animateCamera(CameraUpdateFactory.zoomTo(20));
}else{
Toast.makeText(this, "Location not found", Toast.LENGTH_SHORT).show();
}
}catch(Exception e){
e.printstacktrace();
}
}
}