В настоящее время у меня есть кнопка, внутри Linear Layout
, например, так:Отображать PopupWindow при нажатии кнопки?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/open_popup"
android:onClick="createPopup"/>
</LinearLayout>
У меня также есть расширение createPopup (которое действительно выполняется при нажатии на кнопку).
public void createPopup(View view) {
}
Я попытался создать PopupWindow
с TextView
внутри него. Затем я позвонил showAtLocation(parent, gravity, x, y)
, где parent
- корень LinearLayout
. gravity
был Gravity.BOTTOM
, x
и y
оба были установлены в 10
.
Когда я нажал кнопку, я получил ошибку IllegalStateException
, где я позвонил showAtLocation()
. Вот createPopup()
функция:
PopupWindow popUp;
LinearLayout layout;
LinearLayout main;
TextView value;
LayoutParams params;
boolean click = true;
public void createPopup(View view) {
popUp = new PopupWindow(this);
layout = new LinearLayout(this);
main = (LinearLayout) findViewById(R.id.parent);
value = new TextView(this);
if(click) {
popUp.showAtLocation(main, Gravity.BOTTOM, 10, 10);
popUp.update(50, 50, 300, 80);
click = false;
} else {
popUp.dismiss();
click = true;
}
params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
layout.setOrientation(LinearLayout.VERTICAL);
value.setText(R.string.message);
layout.addView(value, params);
popUp.setContentView(layout);
setContentView(main);
TextView status = (TextView) findViewById(R.id.status);
status.setTextSize(28);
status.setText("Status of Popup: Don't worry, you're never going to get this.");
}
То, что я хотел бы знать:
- Что это означает, что ошибка?
- Почему это отображается?
- Как это исправить?
- Как создать простое всплывающее окно, которое появляется при щелчке кнопки? *
* Я хотел бы быть в состоянии создать функцию, где она занимает по меньшей мере, один параметр (который был бы a String
), а затем создать всплывающее окно, содержащее это String
, а также кнопку, чтобы закрыть всплывающее окно.
EDIT: Не уверен, если это связано с всплывающей вопросом, но при запуске приложения, я получаю эту ошибку:
07-13 19:51:48.448 133-133/? E/[EGL-ERROR]: egl_image* _egl_create_image_ANDROID_native_buffer(egl_display*, egl_context*, EGLClientBuffer, EGLint*, void*):593: CHUN try create image with crop 0,0,0,0
[ 07-13 19:51:48.448 133: 133 E/ ]
CHUN map external image rgb 1024 x 600
ВТОРОЙ EDIT: я добавил соответствующий код, приведенный выше ,
Опубликовать полный стек ошибки. включая сообщение об ошибке, что важно. – JoxTraex
Я не знаю, смогу ли я воспроизвести его, но я могу попробовать. –
Пожалуйста, убедитесь, что пять полных стеков стека при ошибке дают невероятную помощь для понимания того, что происходит. – JoxTraex