AlertDialog的用途
1.弹出警告窗体,提示重要信息,提示用户再次确认操作
2.可设置确认、取消按钮等事件
package com.example.logon; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.content.DialogInterface; 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); //在窗口底部展开 //点击注册时优先弹出用户使用协议 AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create(); alert.setTitle("用户协议确认"); alert.setIcon(R.drawable.googleplay); alert.setMessage("注册新用户需接受用户协议的约束,请您认真查阅用户协议内容,并选择是否同意接受用户协议。"); alert.setButton(AlertDialog.BUTTON_POSITIVE, "确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { 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); //在窗口底部展开 } }); alert.setButton(AlertDialog.BUTTON_NEGATIVE, "不同意", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { ToastShow("只有接受用户协议,才能注册新用户。"); } }); alert.show(); } }); } 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(); } }