PopupWindow彈出視窗的使用

2022-09-07 01:30:16 字數 3036 閱讀 7861

1.主布局檔案activity_popup_window.xml:

<

relativelayout

xmlns:android

=""xmlns:tools

=""android:layout_width

="match_parent"

android:layout_height

="match_parent"

android:paddingbottom

="@dimen/activity_vertical_margin"

android:paddingleft

="@dimen/activity_horizontal_margin"

android:paddingright

="@dimen/activity_horizontal_margin"

android:paddingtop

="@dimen/activity_vertical_margin"

tools:context

="com.example.androidui.popupwindowactivity"

>

<

button

android:id

="@+id/button1"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:layout_alignparenttop

="true"

android:layout_centerhorizontal

="true"

android:layout_margintop

="14dp"

android:text

="button"

/>

relativelayout

>

2.彈出視窗的布局檔案view_popup_window.xml:

<?

xml version="1.0" encoding="utf-8"

?>

<

linearlayout

xmlns:android

=""android:layout_width

="match_parent"

android:layout_height

="match_parent"

android:orientation

="vertical"

>

<

radiogroup

android:id

="@+id/radiogroup1"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:layout_gr**ity

="center"

>

<

radiobutton

android:id

="@+id/radio0"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:checked

="true"

android:text

="蘇州"

/>

<

radiobutton

android:id

="@+id/radio1"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:text

="上海"

/>

<

radiobutton

android:id

="@+id/radio2"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:text

="北京"

/>

radiogroup

>

linearlayout

>

3.activity**:

public

class popupwindowactivity extends

activity

});button button =(button) findviewbyid(r.id.button1);

button.setonclicklistener(

newview.onclicklistener()

else

}});

}}

#遇到的問題:

使用findviewbyid(r.id.radiogroup1)時導致程式崩潰。

#原因:

使用findviewbyid(r.id.radiogroup1)時預設呼叫當前的layout檔案生成的view物件對元件初始化,但在當前layout布局檔案中沒有定義r.id.radiogroup1所以會導致程式崩潰。

#解決辦法:

例項化r.id.radiogroup1所在layout布局檔案:

layoutinflater.from(context).inflate(resource, root).findviewbyid(id)

用該layout布局檔案的例項載入r.id.radiogroup1元件。

這也解釋了問什麼相同layout檔案中不可有相同id,不同layout檔案中可以有相同id的問題,因為不同layout中相同id的元件是用與其元件相對應的layout布局檔案的例項載入的。

彈出PopupWindow後讓背景變暗的方法

在android上使用alertdialog和popupwindow都可以很方便的實現彈窗,alertdialog彈出後背景會變暗,而popupwindow不具有此特性。stackoverflow上的這個問題 裡給出了三種方法以實現彈出popupwindow後讓背景變暗的效果,整理如下。1.方法一 ...

PopupWindow軟鍵盤彈出,上移

在popupwindow彈出後,又彈出軟鍵盤會導致 popupwindow往上移動,偏離之前的位置,解決方法 1.新增如下 popupwindow.inputmethodmode popupwindow.input method needed2.在activity 的mainfest檔案中新增 an...

ajax彈出視窗提示與彈出視窗

如果用了updatepanel 彈出的寫法 scriptmanager.registerstartupscript this.updatepanel1,page.gettype alert 彈出提示 true scriptmanager.registerstartupscript this.upda...