try catch 未处理的 Android 地理编码器错误

标签 android geolocation

我正在制作一个显示长 lat off 插入地址的应用程序。

它工作正常,但问题仅在于,当我在文本框中插入错误的地址名称(如“abc xyz”)时,它停止并在模拟器上显示错误“不幸的是,位置已停止。”

我无法理解这一点,因为据我所知,try 和 catch 可以处理任何异常。是真的吗????

我的示例项目中只有一个文本框和编辑框,这是按钮单击的代码。 这是一个代码...

  try{
    bt.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            try {
                //List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
                add=et.getText().toString();
                List<Address> addresses = geocoder.getFromLocationName(add, 1);


                if(addresses != null) {
                    Address returnedAddress = addresses.get(0);
                    StringBuilder strReturnedAddress = new StringBuilder("\n");
                    for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) {
                        strReturnedAddress.append("Latitude="+addresses.get(0).getLatitude()).append("\n");
                        strReturnedAddress.append("Longitude="+addresses.get(0).getLongitude()).append("\n");
                        strReturnedAddress.append("Country="+addresses.get(0).getCountryName()).append("\n");
                        strReturnedAddress.append("State="+addresses.get(0).getAdminArea()).append("\n");

                    }
                    myAddress.setText(strReturnedAddress.toString());
                }
                else{
                    myAddress.setText("No Address returned!");
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                myAddress.setText("Canont get Address!");
            }
            /*Intent intent=new Intent(Main.this, Horoscope.class);
            intent.putExtra("extra", myAddress.getText().toString());
            startActivity(intent);*/
        }
    });
    }
    catch (Exception e) {
        // TODO: handle exception
        myAddress.setText("Canont get Address!");
    }

最佳答案

try{ 
                    //List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
            add=et.getText().toString();
            List<Address> addresses = geocoder.getFromLocationName(add, 1);


            if(addresses != null) {
                Address returnedAddress = addresses.get(0);
                StringBuilder strReturnedAddress = new StringBuilder("\n");
                for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) {
                    strReturnedAddress.append("Latitude="+addresses.get(0).getLatitude()).append("\n");
                    strReturnedAddress.append("Longitude="+addresses.get(0).getLongitude()).append("\n");
                    strReturnedAddress.append("Country="+addresses.get(0).getCountryName()).append("\n");
                    strReturnedAddress.append("State="+addresses.get(0).getAdminArea()).append("\n");

                }
                myAddress.setText(strReturnedAddress.toString());
            }
            else{
                myAddress.setText("No Address returned!");
            }

           }} catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            myAddress.setText("Canont get Address!");
        }
        /*Intent intent=new Intent(Main.this, Horoscope.class);
        intent.putExtra("extra", myAddress.getText().toString());
        startActivity(intent);*/
    }
});
}

           catch (Exception e) {
                    Toast.makeText(getApplicationContext(), "UR MESSAGE" ,      Toast.LENGTH_LONG).show();
                    startActivity(new Intent(this, YourActivity.class));
                   finish();
}

关于try catch 未处理的 Android 地理编码器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9802931/

相关文章:

android - 具有 3 个 fragment 的 ViewPager 从中间 fragment 的两侧加载 fragment

Java 类的序列化扩展

swift - 如何在 ios Swift 中创建类似于 50 英里半径的 MKCoordinate 区域?

java - 如何在没有 queryBuilder 的情况下定义 ORMLite 中的位置

java - 使用 Java 在 Android 中单击时更改 TextView 的背景颜色

java - Android 2.3 使用 Fragment 时保持 ListView 位置

android - 替代(Google map )开源 map API,提供道路上的节点和弧线数据库

c# - C# 的纬度和经度边界框?

mongodb - 在 mongodb 中对地理数据进行聚类

postgresql - 哪个(近)实时空间数据库可存储超过 100 万个条目?