#android #popup #view
Раньше создавал уже popup все работало, а на этом минимальном коде нет. Никак не
пойму в чем дело, подскажите. Нажатие на кнопку срабатывает, но не работает сама кнопка,
т.е. нет анимации нажатия, тоже самое и с editText.
public class MainActivity extends Activity {
LinearLayout lay;
PopupWindow popup;
Button btnOpenPopup, btnClosePop;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnOpenPopup = (Button) findViewById(R.id.popupbutton);
btnOpenPopup.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popup.showAsDropDown(v, 30, 60);
}
});
View window = getLayoutInflater().inflate(R.layout.popup, null);
Button b = (Button) window.findViewById(R.id.btnPopup);
popup = new PopupWindow(window, LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
btnClosePop = (Button) window.findViewById(R.id.btnPopup);
btnClosePop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("tag", "pressed");
}
});
}
}
Лейаут самый простейший:
POPUP:
MAIN:
Ответы
Ответ 1
Насколько я понял, в строках public void onClick(View v) { popup.showAsDropDown(v, 30, 60); } не инициализирована переменная popup. Странно, что код работал и не выдавал ошибку. UPDATE Andreich, согласен, инициализация идёт ниже по тексту. Сегодня тоже долго мучался, нашёл много граблей с этим PopupWindow. В частности, при открытии по кнопке у меня другой код. @Override public void onClick(View view) { if (popupWindow == null) { // здесь инициализация popupWindow и его отображение. } if (!popupWindow.isShowing()) { popupWindow.showAsDropDown(txtSomeElement, 0, 0); } }
Комментариев нет:
Отправить комментарий