您的位置:首页 > 移动开发 > Android开发

Android用户界面——对话框(Dialog)

2010-12-06 15:30 399 查看
Android有四种默认的Dialog实现:AlertDialog、ProgressDialog、DatePickerDialog、TimePickerDialog。另外你还可以继承android.app.Dialog实现自已的dialog。

1.AlertDialog是一种能构造默认的零、一、二、三个按钮的对话框和单选或多选的的选择对话框。

2.ProgressDialog是继函大自AlertDialog,除了AlertDialog功能外,它还能显视进度圈或条的对话框。

3.DatePickerDialog/TimePickerDialog是分别能让用户选择日期和时间的对话框。

-------------------

AlertDialog部分:

1.不同个数按钮选择的Dialog:

new AlertDialog.Builder(Context)

.setIcon(R.drawable.alert_dialog_icon)  //图片

.setTitle(R.string.alert_dialog_two_buttons_msg)  //title

.setMessage(R.string.alert_dialog_two_buttons2_msg)  //message

.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener()   //确定按钮

{

public void onClick(DialogInterface dialog, int whichButton)

{

/* User clicked OK so do some stuff */

}

})

.setNeutralButton(R.string.alert_dialog_something, new DialogInterface.OnClickListener() //中间

{

public void onClick(DialogInterface dialog, int whichButton)

{

/* User clicked Something so do some stuff */

}

})

.setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() //否定按钮

{

public void onClick(DialogInterface dialog, int whichButton)

{

/* User clicked Cancel so do some stuff */

}

})

.show();


注意:每个setXX都是可选可不选的。例如:可以都不选只选setMessage("--")得到和toast一样效果的dialog。

2.单选Dialog:

加入:

.setItems(R.array.select_dialog_items, new DialogInterface.OnClickListener()

{

public void onClick(DialogInterface dialog, int which)

{

String[] items = getResources().getStringArray(R.array.select_dialog_items);

new AlertDialog.Builder(AlertDialogSamples.this)

.setMessage("You selected: " + which + " , " + items[which])

.show();

}

}


3.多选Dialog:

加入:

.setMultiChoiceItems(R.array.select_dialog_items3,

new boolean[]{false, true, false, true, false, false, false},

new DialogInterface.OnMultiChoiceClickListener()

{

public void onClick(DialogInterface dialog, int whichButton,   boolean isChecked)

{
/* User clicked on a check box do some stuff */

}

})


4.可输入Dialog:

LayoutInflater factory = LayoutInflater.from(this);

final View textEntryView = factory.inflate(R.layout.alert_dialog_text_entry, null);//是一个View类


在加入:

.setView(textEntryView)

----------------------------------

ProgressDialog部分:

ProgressDialog  mProgressDialog ;

mProgressDialog = new ProgressDialog(AlertDialogSamples.this);            mProgressDialog.setIcon(R.drawable.alert_dialog_icon);            mProgressDialog.setTitle(R.string.select_dialog);            mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);            mProgressDialog.setMax(MAX_PROGRESS);

mProgressDialog.setButton(getText(R.string.alert_dialog_hide), new DialogInterface.OnClickListener()

{

public void onClick(DialogInterface dialog, int whichButton)

{

/* User clicked No so do some stuff */

}

});

mProgressDialog.setButton2(getText(R.string.alert_dialog_cancel), new DialogInterface.OnClickListener()

{

public void onClick(DialogInterface dialog, int whichButton)

{
/* User clicked No so do some stuff */

}

});


----------------------------------

DatePickerDialog或DatePickerDialog部分:

注意:所有例子都在Android自带的ApiDemos例子中!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: