AlertDialog не отображается в блоке catch - PullRequest
1 голос
/ 13 мая 2011

Я пытаюсь проанализировать некоторые данные XML из Интернета.В большинстве случаев XML-файлы чистые и хорошо отображаются в моем приложении.Это работает отлично.Я также хочу встроить некоторую безопасность, чтобы приложение не зависало при плохом XML.

Поэтому, когда XML не может быть проанализирован, он переходит к моему блоку catch, где я продолжаю:

try {
            Log.e("in try", "try");
            /* Create a URL we want to load some xml-data from. */
            URL url = new URL("http://172.21.150.140:80/scripts/cgiip.exe/WService=brAccentBe/Android/getVacatureDetails.html?Vacid=" + vacaid + "&Kantoorid=" + kantoorid);

            System.out.println("Url " + url);
            /* Get a SAXParser from the SAXPArserFactory. */
            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();

            /* Get the XMLReader of the SAXParser we created. */
            XMLReader xr = sp.getXMLReader();
            /* Create a new ContentHandler and apply it to the XML-Reader*/ 
            vacatureDetailsWebservice vs = new vacatureDetailsWebservice();
            xr.setContentHandler(vs);

            /* Parse the xml-data from our URL. */
            xr.parse(new InputSource(url.openStream()));
            /* Parsing has finished. */

            /* Our ExampleHandler now provides the parsed data to us. */
            vaca = vs.getVacatures();


        }    
 catch (Exception e) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(JobDetails.this);
            builder.setTitle("Fout in XML");
            builder.setMessage("Er is een fout opgetreden in de data. Probeer het later nog eens");
            builder.setCancelable(false);
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    finish();
                }
            }); 
            builder.create().show();
        }

Но диалоговое окно не отображается, класс продолжает работать и получает другие исключения, потому что XML не анализируется.Этот метод вызывается в onCreate.

Кто-нибудь видит, что я делаю неправильно?

1 Ответ

2 голосов
/ 13 мая 2011

Пожалуйста, попробуйте ниже вещей, может быть, это будет работать, но не уверен ...

логический бол = ложь;

попытка {

// ваш код

} поймать (исключение е) {

bol = true;

}

     if (bol){

       final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Fout in XML");
        builder.setMessage("Er is een fout opgetreden in de data. Probeer het later nog eens");
        builder.setCancelable(false);
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                finish();
            }
        }); 
        builder.create().show();
    }
...