对话框是程序运行中的弹出窗口。例如,当用户要删除一个联系方式时,会弹出一个
对话框,让用户确认是否真的要删除。
Android系统提供了四种对话框:警告对话框 (AlertDialog)、进度对话框(ProgressDialog)、日期选择对话框(DatePickerDialog)和时间选择对话框(TimePickerDialog)
警告对话框(AlertDialog)
AlertDialog是一个提示窗口,要求用户作出选择。该对话框中一般会有几个选择按钮、标题信息和提示信息。
在程序中创建对话框需要如下步骤:
1、获得 AlertDialog的静态内部类 Builder 对象,由该类来创建对话框。
2、通过 Buidler对象设置对话框的标题、按钮以及按钮将要响应的事件。
3、调用Builder的createO方法创建对话框。
4、调用AlertDialog的showO方法显示对话框。
实例代码如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView mytext=(TextView)this.findViewById(R.id.text1);
final AlertDialog.Builder builder=new AlertDialog.Builder(this);//创建builder对象
Button btn1=(Button)this.findViewById(R.id.btn_main1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
builder.setMessage("Are you sure!")
.setPositiveButton("OK",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
mytext.setText("success");
}
}).setNegativeButton("CANCEL",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
mytext.setText("cancel");
}
});
AlertDialog ad=builder.create();
ad.show();
}
});
}
}
效果如下,点击按键后:
另一种对话框,如下代码:
public class MainActivity extends Activity {
private static final int menu1=Menu.FIRST;
private static final int menu2=Menu.FIRST+1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView mytext=(TextView)this.findViewById(R.id.text1);
final AlertDialog.Builder builder=new AlertDialog.Builder(this);
final String[] message={"--------","*******","++++++++"};
Button btn1=(Button)this.findViewById(R.id.btn_main1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//两种不同风格的对话框
builder.setTitle("Please choose...")
.setSingleChoiceItems(message, -1, new DialogInterface.OnClickListener() {
//.setItems(message,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
mytext.setText(message[arg1]);
}
});
AlertDialog ad=builder.create();
ad.show();
}
});
}
}
以上两种模式如下图:
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。