16 PopupWindow的应用

PopupWindow的用途

1.浮动弹出自定义窗体

2.可设置弹出位置

在注册按钮下展开

在窗口底部展开

在layout中新建一个xml文件,布局:

package com.example.logon;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btnLogon = (Button)findViewById(R.id.btnLogon);
        btnLogon.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                RadioButton rbtnLogonByUserName = (RadioButton)findViewById(R.id.rbtnLogonByUserName);
                //RadioButton rbtnLogonByEmail = (RadioButton)findViewById(R.id.rbtnLogonByEmail);
                String DbUser,DbPassword;
                if(rbtnLogonByUserName.isChecked()){
                    DbUser = "zhangsan";
                    DbPassword = "123456";
                }
                else{
                    DbUser = "zhangsan@sample.com";
                    DbPassword = "123456";
                }
                EditText txtUserName = (EditText)findViewById(R.id.txtUserName);
                EditText txtPassword = (EditText)findViewById(R.id.txtPasword);
                TextView txtResult = (TextView)findViewById(R.id.txtResult);
                if (txtUserName.getText().toString().equals(DbUser)){
                    if(txtPassword.getText().toString().equals(DbPassword)){
                        //txtResult.setText("登录成功");
                        //Toast toast = Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_LONG);
                        //toast.setGravity(Gravity.CENTER,0,0);
                        //LinearLayout layout = (LinearLayout)toast.getView();
                        //ImageView img = new ImageView(getApplicationContext());
                        //img.setImageResource(R.drawable.googleplay);
                        //layout.addView(img,0);
                        //toast.show();
                        ToastShow("登录成功");
                    }else{
                        //密码错误
                        //txtResult.setText("密码错误");
                        //Toast toast = Toast.makeText(MainActivity.this, "密码错误", Toast.LENGTH_LONG);
                        //toast.setGravity(Gravity.CENTER,0,0);
                        //toast.show();
                        ToastShow("密码错误");
                    }
                }
                else{
                    //用户名不存在
                    //txtResult.setText("用户名不存在");
                    //Toast toast = Toast.makeText(MainActivity.this, "用户名不存在", Toast.LENGTH_LONG);
                    //toast.setGravity(Gravity.CENTER,0,0);
                    //toast.show();
                    ToastShow("用户名不存在");
                }
            }
        });
        final Button btnReg = (Button)findViewById(R.id.btnReg);
        btnReg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View contentView = LayoutInflater.from(MainActivity.this).inflate(R.layout.popup_content,null,false);

                PopupWindow window = new PopupWindow(contentView,LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT,true);
                window.setTouchable(true);
                window.showAsDropDown(btnReg,0,0,Gravity.BOTTOM);
                //在注册按钮下展开
                //window.showAtLocation(getWindow().getDecorView(),Gravity.BOTTOM,0,0);
                //在窗口底部展开
            }
        });
    }
    void ToastShow(String Content){
        Toast toast = Toast.makeText(MainActivity.this, Content, Toast.LENGTH_LONG);
        View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.tosat_templates, null);
        TextView txtToastContent = (TextView) view.findViewById(R.id.txtToastContent);
        txtToastContent.setText(Content);
        toast.setView(view);
        toast.setGravity(Gravity.CENTER,0,0);
        //LinearLayout layout = (LinearLayout)toast.getView();
        //ImageView img = new ImageView(getApplicationContext());
        //img.setImageResource(R.drawable.googleplay);
        //layout.addView(img,0);
        toast.show();
    }
}
原文地址:https://www.cnblogs.com/wangdayang/p/14459604.html