2016-09-12 6 views
0

Я пытался выяснить эту проблему со вчерашнего дня, но я никуда не денусь. В учебниках показано, что функция popupwindow убирается с помощью кнопки, но у меня есть MenuItem, который создает всплывающее окно, внутри окна есть кнопка отмены. Я хочу, чтобы окно закрывалось при нажатии кнопки отмены. Вот кодКак закрыть всплывающее окно с пункта меню в Android

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    Intent intent; 
    switch (item.getItemId()) { 
     case R.id.ResetP: 
      passwordWindow(); 
      break;} 

Код для passwordWindow()

private void passwordWindow() 
{ 
    layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE); 
    ViewGroup container = (ViewGroup) layoutInflater.inflate(R.layout.password_layout,null); 

    popupWindow = new PopupWindow(container,(int)(width * .6),(int)(height*.3),false); 
    popupWindow.showAtLocation(relativeLayout, Gravity.NO_GRAVITY,(int)(width * .2),(int)(height *.3)); 

    Button btn = (Button) findViewById(R.id.btn_cancel);//This button is in password_layout.xml file 
    btn.setOnClickListener(new Button.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      popupWindow.dismiss(); 
     } 
    }); 
} 

Мое окно Пароль есть кнопка OK и кнопка отмены, я хочу, чтобы окно закрывается при нажатии кнопки отмены однако я получаю эту ошибку

java.lang.NullPointerException: Попытка вызвать виртуальный метод 'недействительным android.widget.Button.setOnClickListener (android.view.View $ OnClickListener)' на нуль Ob ект ссылка

Это делает меня тянуть на себе волосы, может кто-то пожалуйста, помогите мне Спасибо

ответ

3
Button btn = (Button)container.findViewById(R.id.btn_cancel);//This button is in password_layout.xml file 

Добавить контейнер .findViewById ...

+0

Если вы нашли мой ответ правильный, то добро пожаловать! – PriyankaChauhan