我有问题让弹出窗口不可见。当我按下显示它变得可见但是当我按下取消按钮(取消按钮是弹出窗口)时,它不会变得不可见,但它通过代码而没有通过正常。
final PopupWindow pw = new PopupWindow(inflater.inflate(R.layout.popup,
null, false), 300, 300, true);
View layout = inflater.inflate(R.layout.popup,
(ViewGroup) findViewById(R.id.llPopup));
Button btnOK = (Button) layout.findViewById(R.id.btnOK);
Button btnCancel = (Button) layout.findViewById(R.id.btnCancel);
btnCancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if (pw != null) {
pw.dismiss();
}
}
});
这是popup.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#AAAAAAAA"
android:id="@+id/llPopup"
>
<LinearLayout
android:orientation="horizontal"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/txtSearchBy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Search By:"
/>
<RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:orientation="vertical">
<RadioButton
android:id="@+id/rbPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Time" />
<RadioButton
android:id="@+id/rbDuration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Price" />
<RadioButton
android:id="@+id/rbLongitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Longitude" />
</RadioGroup>
</LinearLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
>
<Button
android:id="@+id/btnCancel"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:text="Cancel"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
/>
<Button
android:id="@+id/btnOK"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:text="OK"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
</LinearLayout>
我做错了可以有人帮助我吗?
答案 0 :(得分:2)
View layout = inflater.inflate(R.layout.popup,
(ViewGroup) findViewById(R.id.llPopup));
final PopupWindow pw = new PopupWindow(layout, 300, 300, true);
Button btnOK = (Button) layout.findViewById(R.id.btnOK);
Button btnCancel = (Button) layout.findViewById(R.id.btnCancel);
btnCancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if (pw != null) {
pw.dismiss();
}
}
});
每次调用inflate
方法时,您都会创建新的View
;因此,您设置监听器的取消按钮与弹出窗口内的取消按钮不同。如上所示,相同的View
用于:初始化弹出窗口并设置单击侦听器。