效果图
主要代码:
package cn.bzu.dialogcase;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.support.v4.app.NavUtils;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog
.setTitle("登录提示")
.setMessage("这里需要登录")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击确定进入登录对话框
// Inflator在android中建立了资源文件到对象的桥梁
LayoutInflater layoutInflater = LayoutInflater
.from(MainActivity.this);
// 得到自定义的对话框
View dialogView = layoutInflater.inflate(
R.layout.dialog, null);
// 创建对话框
AlertDialog.Builder loginDialog = new AlertDialog.Builder(
MainActivity.this);
loginDialog
.setTitle("登录框")
.setView(dialogView)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
// 输入完成后,点击确定开始登录
// 创建进度对话框
final ProgressDialog progressDialog = ProgressDialog
.show(MainActivity.this,
"请等待",
"正在为你登录", true);
new Thread() {
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
progressDialog
.dismiss();
}
}
}.start();
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
finish();// 如果点击了取消按钮则退出应用程序
}
}).create().show();
}
})
.setNeutralButton("退出", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).create().show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}