您的位置:首页 > 其它

Dialog的4中功能的展示,以及他的监听方法

2011-10-18 09:13 323 查看
public class ActivityMain extends Activity {
//为dialog排序方便后面判断使用
private static final int DIALOG1 = 1;
private static final int DIALOG2 = 2;
private static final int DIALOG4 = 4;
private static final int DIALOG3 = 3;

//判断dialog,并却返回到指定的方法中,这里的方法是以个回调方法,执行后面的showDialog()方法后都会回调
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG1:
return buildDialog1(ActivityMain.this);

case DIALOG2:
return buildDialog2(ActivityMain.this);

case DIALOG3:
return buildDialog3(ActivityMain.this);
case DIALOG4:
return buildDialog4(ActivityMain.this);

}
return null;
}

protected void onPrepareDialog(int id, Dialog dialog){
if(id==DIALOG1){
setTitle("测试");
}
}
//为Activity设置布局以及按钮的监听
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alert_dialog);

Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(DIALOG1);
}
});

Button buttons2 = (Button) findViewById(R.id.buttons2);
buttons2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(DIALOG2);
}
});

Button button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(DIALOG3);
}
});

Button button4 = (Button) findViewById(R.id.button4);
button4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(DIALOG4);
}
});
}
//为Dialog设置内容以及按键监听
private Dialog buildDialog1(Context context) {
//AlertDialog是Dialog的子类,Builder为AlertDialog的内部类,通过Builder为AlertDialog来设置内容
AlertDialog.Builder builder = new AlertDialog.Builder(context);
//builder设置AlertDialog中的提示图标
builder.setIcon(R.drawable.alert_dialog_icon);
//builder设置AlertDialog中的提示文本
builder.setTitle(R.string.alert_dialog_two_buttons_title);
//builder设置AlertDialog中左按键的名以及按键监听
builder.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

setTitle("点击了对话框上的确定按钮");
}
});
//builder设置AlertDialog中右按键的名以及按键监听
builder.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

setTitle("点击了对话框上的取消按钮");
}
});
//返回 builder的create()方法
return builder.create();

}
private Dialog buildDialog2(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setIcon(R.drawable.alert_dialog_icon);
builder.setTitle(R.string.alert_dialog_two_buttons_msg);
//builder设置AlertDialog中的多文本提示信息
builder.setMessage(R.string.alert_dialog_two_buttons2_msg);
builder.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

setTitle("点击了对话框上的确定按钮");
}
});
//builder设置AlertDialog中中间按键以及监听
builder.setNeutralButton(R.string.alert_dialog_something,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

setTitle("点击了对话框上的进入详细按钮");
}
});
builder.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

setTitle("点击了对话框上的取消按钮");
}
});
return builder.create();
}

private Dialog buildDialog3(Context context) {
//LayoutInflater为动态加载xml方法主要为不是activity的其他空间添加布局方法
LayoutInflater inflater = LayoutInflater.from(this);
//创建View来赋值LayoutInflater的布局
final View textEntryView = inflater.inflate(
R.layout.alert_dialog_text_entry, null);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setIcon(R.drawable.alert_dialog_icon);
builder.setTitle(R.string.alert_dialog_text_entry);
//通过builder为LayoutInflater加载布局
builder.setView(textEntryView);
builder.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
setTitle("点击了对话框上的确定按钮");
}
});
builder.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
setTitle("点击了对话框上的取消按钮");
}
});
return builder.create();
}

//下面是进度对话框
private Dialog buildDialog4(Context context) {
//申明进度对话框,可以直接new.
ProgressDialog dialog = new ProgressDialog(context);
dialog.setTitle("正在下载歌曲");
dialog.setMessage("请稍候……");
return dialog;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐