geocoder.getFromLocationName错误

时间:2016-08-10 02:23:19

标签: java android

获得"永远是真实的"结果在if (location != null || !location.equals(""))上,当我搜索类似" sldjfuhsdhfj"它关闭了应用程序,但是当我输入类似"中央公园"它工作正常。 我究竟做错了什么? 我正在使用的代码

public void onMapSearch(View view) {
    EditText locationSearch = (EditText) findViewById(R.id.editText1);
    String location = locationSearch.getText().toString();
    List<Address> addressList = null;

    if (location != null || !location.equals("")) {
        Geocoder geocoder = new Geocoder(this);
        try {
            addressList = geocoder.getFromLocationName(location, 1);

        } catch (IOException e) {
            e.printStackTrace();
        }
        Address address = addressList.get(0);
        LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
        mMap.addMarker(new MarkerOptions().position(latLng).title("Marker"));
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 16));
        final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                // Do something after 3s
                mMap.clear();
            }
        }, 3000);
    }
}

1 个答案:

答案 0 :(得分:0)

地址address = addressList.get(0)

你给了它垃圾所以它没有返回任何结果。 addressList为空。您正在访问空的东西的0元素。您应该已经在Android Studio的Android监视器窗口中看到一条消息,指出了这个确切的行/问题。