一、AlterDialog
F1、一句表达式:
new AlertDialog.Builder(HelloWorldActivity.this)
.setTitle("AlterDialog提示对话框")
.setMessage("确定退出本程序吗?")
.setPositiveButton(
"确定",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialoginterface,int i)
{
/*对话按钮点击后的事件操作*/
}
}
).show();
F2、通过Builder设置:
Builder buid=new AlertDialog.Builder(HelloWorldActivity.this);
buid.setTitle("AlterDialog提示对话框");
buid.setMessage("确定退出本程序吗?");
buid.setPositiveButton(
"确定",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialoginterface,int i)
{
/*对话按钮点击后的事件操作*/
}
}
);
buid.setNegativeButton(
"取消",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialoginterface,int i)
{
/*对话按钮点击后的事件操作*/
}
}
);
buid.show();
F3、选项对话框
String[] choices={"Facebook","Twitter"}; //选项数组
boolean[] chsBool = {true,true}; //Check判断数组,与选项对应
//包含多个选项及复选框的对话框
lgdiag = new AlertDialog.Builder(LoginForm.this)
.setIcon(android.R.drawable.btn_star_big_on)
.setTitle("调查")
.setMultiChoiceItems(choices, chsBool, multiClick)
.setPositiveButton("Yes", onclick)
.setNegativeButton("No", onclick)
.setNeutralButton("Details", onclick).create();
lgdiag.show();
/**
* 对话框复选框事件监听器:单击选项后的响应操作
*/
OnMultiChoiceClickListener multiClick = new OnMultiChoiceClickListener(){
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(LoginForm.this, "第"+(which+1)+"项,选中结果:"+isChecked,Toast.LENGTH_SHORT).show();
}
};
/**
* 对话框按钮点击事件监听器
*/
static final int BUTTON_POSITIVE = -1;
static final int BUTTON_NEGATIVE = -2;
static final int BUTTON_NEUTRAL = -3;
OnClickListener onclick = new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case BUTTON_POSITIVE: //-1
Toast.makeText(LoginForm.this, "Yes..BUTTON_POSITIVE:",
Toast.LENGTH_LONG).show();
break;
case BUTTON_NEGATIVE: //-2
Toast.makeText(LoginForm.this, "No..BUTTON_NEGATIVE:",
Toast.LENGTH_LONG).show();
break;
case BUTTON_NEUTRAL: //-3
Toast.makeText(LoginForm.this, "I don't know!!BUTTON_NEUTRAL:",
Toast.LENGTH_LONG).show();
break;
}
}
};
二、Progress Dialog
ProgressDialog 类似于ProgressBar,都是用于显示进度,区别是一个是控件一个是对话框。
ProgressDialog有两种形式一个是STYLE_SPINNER,STYLE_HORIZONTAL。其中前者没有固定值,后者可以设置最大值和当前值。
F1、STYLE_SPINNER圆形进度条
int m_count=0;
ProgressDialog prDialog;
OnClickListener btn1Clicker=new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
prDialog=new ProgressDialog(ProgressDialogDemo.this);
prDialog.setTitle("提示信息");
prDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
prDialog.setMessage("This is a cicle process dialog ");
prDialog.setIcon(R.drawable.icon);
//进度条是否不明确
prDialog.setIndeterminate(true);
prDialog.setCancelable(true);
prDialog.setButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
prDialog.cancel();
}
});
prDialog.show();
}
};
F2、STYLE_HORIZONTAL水平进度条
OnClickListener btn2Clicker=new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
m_count=0;
prDialog=new ProgressDialog(ProgressDialogDemo.this);
prDialog.setTitle("提示信息");
prDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
prDialog.setMessage("This is a cicle process dialog ");
prDialog.setIcon(R.drawable.icon);
//进度条是否不明确
prDialog.setIndeterminate(false);
prDialog.setCancelable(true);
prDialog.setProgress(200);
prDialog.setMax(200);
prDialog.setButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
prDialog.cancel();
}
});
prDialog.show();
//执行线程,进度条每0.1秒加1
new Thread()
{
@Override
public void run() {
// TODO Auto-generated method stub
try
{
while(m_count<=200)
{
prDialog.setProgress(m_count++);
Thread.sleep(100);
}
prDialog.cancel();
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}.start();
F1、一句表达式:
new AlertDialog.Builder(HelloWorldActivity.this)
.setTitle("AlterDialog提示对话框")
.setMessage("确定退出本程序吗?")
.setPositiveButton(
"确定",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialoginterface,int i)
{
/*对话按钮点击后的事件操作*/
}
}
).show();
F2、通过Builder设置:
Builder buid=new AlertDialog.Builder(HelloWorldActivity.this);
buid.setTitle("AlterDialog提示对话框");
buid.setMessage("确定退出本程序吗?");
buid.setPositiveButton(
"确定",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialoginterface,int i)
{
/*对话按钮点击后的事件操作*/
}
}
);
buid.setNegativeButton(
"取消",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialoginterface,int i)
{
/*对话按钮点击后的事件操作*/
}
}
);
buid.show();
F3、选项对话框
String[] choices={"Facebook","Twitter"}; //选项数组
boolean[] chsBool = {true,true}; //Check判断数组,与选项对应
//包含多个选项及复选框的对话框
lgdiag = new AlertDialog.Builder(LoginForm.this)
.setIcon(android.R.drawable.btn_star_big_on)
.setTitle("调查")
.setMultiChoiceItems(choices, chsBool, multiClick)
.setPositiveButton("Yes", onclick)
.setNegativeButton("No", onclick)
.setNeutralButton("Details", onclick).create();
lgdiag.show();
/**
* 对话框复选框事件监听器:单击选项后的响应操作
*/
OnMultiChoiceClickListener multiClick = new OnMultiChoiceClickListener(){
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(LoginForm.this, "第"+(which+1)+"项,选中结果:"+isChecked,Toast.LENGTH_SHORT).show();
}
};
/**
* 对话框按钮点击事件监听器
*/
static final int BUTTON_POSITIVE = -1;
static final int BUTTON_NEGATIVE = -2;
static final int BUTTON_NEUTRAL = -3;
OnClickListener onclick = new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case BUTTON_POSITIVE: //-1
Toast.makeText(LoginForm.this, "Yes..BUTTON_POSITIVE:",
Toast.LENGTH_LONG).show();
break;
case BUTTON_NEGATIVE: //-2
Toast.makeText(LoginForm.this, "No..BUTTON_NEGATIVE:",
Toast.LENGTH_LONG).show();
break;
case BUTTON_NEUTRAL: //-3
Toast.makeText(LoginForm.this, "I don't know!!BUTTON_NEUTRAL:",
Toast.LENGTH_LONG).show();
break;
}
}
};
二、Progress Dialog
ProgressDialog 类似于ProgressBar,都是用于显示进度,区别是一个是控件一个是对话框。
ProgressDialog有两种形式一个是STYLE_SPINNER,STYLE_HORIZONTAL。其中前者没有固定值,后者可以设置最大值和当前值。
F1、STYLE_SPINNER圆形进度条
int m_count=0;
ProgressDialog prDialog;
OnClickListener btn1Clicker=new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
prDialog=new ProgressDialog(ProgressDialogDemo.this);
prDialog.setTitle("提示信息");
prDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
prDialog.setMessage("This is a cicle process dialog ");
prDialog.setIcon(R.drawable.icon);
//进度条是否不明确
prDialog.setIndeterminate(true);
prDialog.setCancelable(true);
prDialog.setButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
prDialog.cancel();
}
});
prDialog.show();
}
};
F2、STYLE_HORIZONTAL水平进度条
OnClickListener btn2Clicker=new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
m_count=0;
prDialog=new ProgressDialog(ProgressDialogDemo.this);
prDialog.setTitle("提示信息");
prDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
prDialog.setMessage("This is a cicle process dialog ");
prDialog.setIcon(R.drawable.icon);
//进度条是否不明确
prDialog.setIndeterminate(false);
prDialog.setCancelable(true);
prDialog.setProgress(200);
prDialog.setMax(200);
prDialog.setButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
prDialog.cancel();
}
});
prDialog.show();
//执行线程,进度条每0.1秒加1
new Thread()
{
@Override
public void run() {
// TODO Auto-generated method stub
try
{
while(m_count<=200)
{
prDialog.setProgress(m_count++);
Thread.sleep(100);
}
prDialog.cancel();
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}.start();