2016-12-17 10 views
-1

Я пытаюсь определить Контекст в моей основной деятельности и использовать его в моей AsyncTask, но он дает нулевую ссылку?
Здесь я проверить его в моей основной деятельности и та же ошибка происходит в моей AsyncTask:Мой контекст дает мне нулевой указатель ссылки

public class MainActivity extends AppCompatActivity { 


public Context mContext; 

public Context getContext(Context context) { 

    this.mContext = context; 
    mContext.getContentResolver();// null object reference error 
    return mContext; 
} 

ответ

1

AppCompatActivityявляетсяContext

Вам не нужно это поле. Просто используйте MainActivity.this, где вам нужен Context в этом классе.


Вторая проблема - Если mContext.getContentResolver(); бросает пустой указатель, то вы только что прошли нулевой контекст в этом методе ...

По существу, почему вы передаете параметр для метода GET?

public Context getContext(Context context) { <-- null 

    this.mContext = context; // <-- null 
    mContext.getContentResolver();// <-- Just used null... exception! 
    return mContext; // <-- null, and this is parameter you just provided, anyway... 

В качестве альтернативы,

How can getContentResolver() be called in Android?

Просто позвоните непосредственно getContentResolver() непосредственно.

0

Ваша первая проблема, которую я вижу, что нет существование метода getContentResolver() так, в свою очередь, что бы сделать объект ссылочный нуль, потому что такого метода нет. Если есть метод getContentResolver, тогда вы должны включить его в свой пример :)

0

Вы пытаетесь установить или получить контекст? У меня был бы отдельный метод для получения, а другой для настройки.

public void setContext(Context context) { 
    Objects.requireNotNull(context); 
    this.mContext = context; 
    mContext.getContentResolver();// Not sure if this should do anything? 
} 

public Context getContext() { 
    return mContext; 
} 
Смежные вопросы