2013-04-22 3 views
0

Я разработчик Android-разработчика. У меня есть таблица базы данных, которая учитывает следующие столбцы: _id, fistName, lastName и имя пользователя, что установлено уникальным.Ошибка отображения при создании alertDialog()

Когда я добавляю другого человека в свою таблицу и имя пользователя уже существует, я создаю AlertDialog, но этот AlertDialog не появляется.

Это мой исходный код:

try { 
     personRepository.AddPerson(persons); 
    } catch (SQLiteConstraintException ex) { 
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
       context); 
     alertDialogBuilder.setTitle("User already exist!"); 
     alertDialogBuilder.setMessage("Choose another username!") 
       .setPositiveButton("Yes", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, 
            int id) { 
           dialog.cancel(); 
          } 
         }); 
     AlertDialog alertDialog = alertDialogBuilder.create(); 
     alertDialog.show(); 
    } 

Может кто-нибудь мне помочь?

+0

разместить свой код AddPerson. –

ответ

2

попробовать это

AlertDialog alert; 
alert=new AlertDialog.Builder(YourActivity.this) 
       .setCancelable(false) 
       .setMessage("Message") 
       .setPositiveButton("Okay", new DialogInterface.OnClickListener() 
       { 

        @Override 
        public void onClick(DialogInterface dialog, int which) 
        { 
         // TODO Auto-generated method stub 
         dialog.dismiss(); 
        } 
       }).show(); 
+0

В чем проблема, которую вы нашли с OP и предложил этот код? Не могли бы вы объяснить в своем ответе? –

+0

Иногда Context, getContext() или даже getApplicationContext() приводит к этому исключению. Попробуйте прохождение 'this' или ' YourActivity.this' активность наследуется от контекста, так что работает, хотя я действительно не знаю, почему получение контекста, как это должно быть сделано это не будет работать, давая что странно исключение. – user1621629

+0

'getApplicationContext()' передает весь контекст приложений, а 'YourActivity.this' передает контекст avtivity. Я думаю, что это главное различие между этими двумя. –

0

Если AddPerson вызов метода insertOrThrow затем изменить

catch (SQLiteConstraintException ex) 

в

catch (SQLException ex) 
Смежные вопросы