Android 中PopupWindow使用。
PopupWindow会阻塞对话框,要在外部线程 或者 PopupWindow本身做退出才行。
mypopWindow.xml的Layout设计如下
class="java plain"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#259"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Here is Pop Window" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancle" />
</LinearLayout>
MainActivity.java文件。
在MainActivity的Button按钮单击,然后显示PopupWindow。
private void showPopWindow(Context context, View parent)
{
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View vPopWindow=inflater.inflate(R.layout.mypopwindow, null, false);
//宽300 高300
final PopupWindow popWindow = new PopupWindow(vPopWindow,300,300,true);
Button okButton = (Button)vPopWindow.findViewById(R.id.button1);
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "You click OK", Toast.LENGTH_SHORT).show();
}
});
Button cancleButton = (Button)vPopWindow.findViewById(R.id.button2);
cancleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
popWindow.dismiss(); //Close the Pop Window
}
});
popWindow.showAtLocation(parent, Gravity.CENTER, 0, 0);
}
效果图如下:最后显示是剧中的,这里我只是截取了部分图片。
单击Ok按钮显示You click OK信息。单击取消,则关闭PopupWindow.