源代码
Mainactivity.java
我把源代码中的警告对话框改成警告进度条,设置setCancelable=true,可以直接关闭此窗口。
package com.example.administrator.myapplication;
import android.annotation.SuppressLint;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
//仅是用户登录,不包括用户注册
public class MainActivity extends AppCompatActivity {
Button btn1,btn2;
LinearLayout login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=findViewById(R.id.btn1);
btn2=findViewById(R.id.btn2);
btn1.setOnClickListener(new mClick());
btn2.setOnClickListener(new mClick());
}
private class mClick implements View.OnClickListener {
//Builder为AlertDialog的内部类
Builder dialog = new Builder(MainActivity.this);
ProgressDialog progressdialog = new ProgressDialog(MainActivity.this);
@SuppressLint("InflateParams")
@Override
public void onClick(View v) {
if (v == btn1) {
progressdialog.setTitle(getString(R.string.warning));
progressdialog .setMessage(getString(R.string.message));
progressdialog.setIcon(R.drawable.warning);
progressdialog.setCancelable(true);
progressdialog.show();
// dialog.setTitle(getString(R.string.warning));
// dialog.setIcon(R.drawable.warning);
// dialog.setMessage(getString(R.string.message));
// dialog.setPositiveButton("确定", new okClick());
// //创建对象框
// dialog.create();
// dialog.show();
}
else if (v == btn2) {
login = (LinearLayout) getLayoutInflater().inflate(R.layout.login, null);
dialog.setTitle("用户登陆").setMessage("请输入用户名和密码").setView(login);
dialog.setPositiveButton("确定", new loginClick());
dialog.setNegativeButton("退出", new exitClick());
dialog.setIcon(R.drawable.login);
//创建对象框
dialog.create();
dialog.show();
}
}
}
// class okClick implements DialogInterface.OnClickListener{
// @Override
// public void onClick(DialogInterface dialog, int which) {
// //关闭对话框
// dialog.cancel();
// }
// }
//确定
class loginClick implements DialogInterface.OnClickListener{
EditText txt;
@Override
public void onClick(DialogInterface dialog, int which) {
txt=login.findViewById(R.id.pdEdit);
//取出编辑框的密码与'admin'比较
if ((txt.getText().toString()).equals("admin")){
Toast.makeText(getApplicationContext(),"登陆成功",Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getApplicationContext(),"密码错误",Toast.LENGTH_SHORT).show();
}
dialog.dismiss();
}
}
//退出
class exitClick implements DialogInterface.OnClickListener{
@Override
public void onClick(DialogInterface dialog, int which) {
MainActivity.this.finish();
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/btn1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/btn1"
android:textSize="25sp"
/>
<Button
android:id="@+id/btn2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/btn2"
android:textSize="25sp"
/>
</LinearLayout>
string.xml
<resources>
<string name="app_name">My Application</string>
<string name="btn1">打开普通对话框</string>
<string name="btn2">打开输入对话框</string>
<string name="user">用户名</string>
<string name="pd">密码</string>
<string name="warning">警告</string>
<string name="message">本项操作可能导致信息泄露</string>
</resources>
结果显示
打开普通对话框
打开输入对话框
密码匹配,登陆成功!
密码不匹配,登陆失败!