如何验证 google 个地方 AutoCompleteTextView

How to validate google places AutoCompleteTextView

我认为这对某些人来说可能是愚蠢的问题,但我不知道为什么我不明白。我的问题是,我通过 google 个位置 api

获取纬度和经度

代码:

Geocoder geoCoder new Geocoder(this);
AutoCompleteTextView fAPSearchLocationEt;


        fAPSearchLocationLayout.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {


            try {

                List<Address> returnedaddresses = geoCoder.getFromLocationName(fAPSearchLocationEt.getText().toString(),1);

                if(returnedaddresses != null){

                    String latForVol = String.valueOf(returnedaddresses.get(0).getLatitude());
                    String longForVol = String.valueOf(returnedaddresses.get(0).getLongitude());

                    Log.e("Lat", latForVol);
                    Log.e("Long", longForVol);

                }else {
                    Log.e("Long", "Please give the correct address");
                }

            } catch (IOException e) {
                e.printStackTrace();
            }



        }
    });

所以,现在我想验证 AutoCompleteTextView

验证说明:

假设用户提供了错误的地址,例如 sadgdfhsfagAGDSFJDGHMSFSDFGsdfhg 或任何其他地址。所以,在这种情况下,我想在 setOnClickListener 时验证正确的地址。

Google Places 会自动执行此任务。如果你要验证 "sadgdfhsfagAGDSFJDGHMSFSDFGsdfhg" 这种事情,那么你必须实现很多逻辑。

只需在代码中使用 "ResultCallback":-

 private ResultCallback<PlaceBuffer> mUpdatePlaceDetailsCallback
        = new ResultCallback<PlaceBuffer>() {
    @Override
    public void onResult(PlaceBuffer places) {
        if (!places.getStatus().isSuccess()) {
            Log.e(LOG_TAG, "Place query did not complete. Error: " +
                    places.getStatus().toString());
            return;
        }

    }
};

我通过

得到了这个
try {
                    List<Address> returnedaddresses = geoCoder.getFromLocationName(fAPSearchLocationEt.getText().toString(),1);

                    if(!returnedaddresses.isEmpty()){

                        String latForVol = String.valueOf(returnedaddresses.get(0).getLatitude());
                        String longForVol = String.valueOf(returnedaddresses.get(0).getLongitude());

                        Log.e("Lat", latForVol);
                        Log.e("Long", longForVol);
                        Log.e("Location", fAPSearchLocationEt.getText().toString());

                    }else {
                        Log.e("Long", "Please give the correct address");
                    }

                } catch (IOException e) {
                    e.printStackTrace();
                }