work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Android 中PopupWindow使用

Posted on 2013-03-15 14:47  work hard work smart  阅读(21684)  评论(0编辑  收藏  举报

Android 中PopupWindow使用。

PopupWindow会阻塞对话框,要在外部线程 或者 PopupWindow本身做退出才行。

mypopWindow.xml的Layout设计如下。

<?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.