Как открыть действие с помощью getApplicationContext ()?

Я использую нижнее меню навигации, на каждом itemMenu я вызываю функцию, чтобы открыть правильное действие:

//In the  activty "A" where there's the bottom nav bar:

HelpActivity help = new HelpActivity();

                case R.id.navigation_home:
                help.openHomeActivity();

В HelpActivity

public void openHomeActivity(){

    Intent i = new Intent(getApplicationContext(), HomeActivity.class);
    startActivity(i);
}

Приложение вылетает, пожалуйста, как решить эту проблему?

Ошибка

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference

Приложение вылетает, тогда что за ошибка внутри logcat ??? Разместите это здесь. А также проверьте внутри манифеста, который вы объявили ГлавнаяДеятельность или нет.

Jay Rathod RJ 01.05.2018 15:31
0
1
254
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
HelpActivity help = new HelpActivity();

Никогда создайте экземпляр действия самостоятельно.

Измените openHomeActivity() на:

public void openHomeActivity(Context context){

    Intent i = new Intent(context, HomeActivity.class);
    startActivity(i);
}

Затем, когда вы его вызываете, передайте уже существующий Context, например Activity, у которого есть нижний вид навигации.

Но как вызвать openHomeActivity ()?

Machine 01.05.2018 15:42

@Machine: Поместите openHomeActivity() в класс, где находится блок switch с материалом case R.id.navigation_home. Или избавьтесь от метода и просто вызовите startActivity() из блока case R.id.navigation_home.

CommonsWare 01.05.2018 15:46

Я не знал, что мы можем вызвать startActivity () вдали от намерения, теперь я могу использовать classHelp, большое спасибо за вашу помощь и время

Machine 01.05.2018 15:48
openHomeActivity(this);
92AlanC 01.05.2018 15:54

Другие вопросы по теме