Android 中PopupWindow使用 (转)

参考学习后遇到问题:

要引用:有好几个,可以用错误提示解决;

import android.widget.PopupWindow;

import android.widget.Toast;

Activity调用过程 :

首先定义一个BUTTON变量和mContext

    private Button mshowBtn;
    private Context mContext; 

  @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  startService(new Intent(LoginActivity.this, MicroVideoService.class));
  bindXMPPService();
  setContentView(R.layout.loginpage);
  mContext=this;  
  initView();
 }

//指定事件

  mshowBtn= (Button) findViewById(R.id.showbtn);
  mshowBtn.setOnClickListener(mshowBtnOnClickListener);

//实现事件并调用

    private OnClickListener mshowBtnOnClickListener= new OnClickListener(){
 @Override
 public void onClick(View v) {
  showPopWindow(mContext,v);
 }
   
    };

(转自:import android.widget.PopupWindow;)

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.
原文地址:https://www.cnblogs.com/jenson138/p/4028138.html