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(); } }