Android пользовательский контент-провайдер - PullRequest
1 голос
/ 24 марта 2011

Я написал пользовательский контент-провайдер, который создает базу данных в sqlite3 с одной таблицей user_authentication.

Хотя БД и таблица созданы для их соответствующих onCreate() методов, я получаю NullPointerException в переопределенном методе вставки.Ниже приведен метод:

public Uri insert(Uri uri, ContentValues initialvalues){
         SQLiteDatabase sqlitedb = dbHelper.getWritableDatabase();
         if(sUriMatcher.match(uri)!= TABLE){
             throw new IllegalArgumentException("Unkown Uri"+uri);
         }

         ContentValues values;
         if(initialvalues != null){
             values = new ContentValues(initialvalues);
         }
         else{
             values = new ContentValues();
         }

         long rowId = sqlitedb.insert(AUTHENTICATION_TABLE_NAME, "", values);

             if(rowId>0){
                 Uri uril = ContentUris.withAppendedId(User.CONTENT_URI, rowId);
                 getContext().getContentResolver().notifyChange(User.CONTENT_URI, null);
                 sqlitedb.close();
                 return uril;
             }

             throw new SQLException("Failed to insert row into User_Authentication : " + uri);


     }

Во время отладки я вижу, что таблица вставляется с «значениями», но когда она достигает getContext(), она возвращает ноль и, таким образом, ошибку.* Мне интересно, почему getContext() возвращает ноль, потому что пользовательский класс contentprovider расширяет android.content.ContentProvider;

Может кто-нибудь помочь мне с этим.Кстати, я использую 2.3 SDK

Спасибо, Раджа Чандра Rangineni

1 Ответ

0 голосов
/ 25 марта 2011

getApplicationContext () должен работать вместо getContext ().

...