轉載請註明出處:【菜鳥的成長史http://blog.csdn.net/zjbpku/article/details/7836587】
最近對Dialog的使用比較頻繁,在這個過程中發現經常用到的對話框也就幾種,個人將其總結爲以下幾種:
樣式一:
代碼:
new AlertDialog.Builder(MainActivity.this)
.setTitle("AlertDialog")
// .setIcon(icon)
.setMessage("text")
.setPositiveButton("ok", new OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
}
}).setNegativeButton("cancel", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
}
}).show();
樣式二:
代碼:
final CharSequence[] items = { "Man", "Woman", "Boy", "Girl" };
new AlertDialog.Builder(MainActivity.this)
.setTitle("Pick a item")
.setItems(items, new OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(),
items[item], Toast.LENGTH_SHORT).show();
}
}).show();
樣式三:
代碼:
final CharSequence[] items1 = { "Man", "Woman", "Boy", "Girl" };
new AlertDialog.Builder(MainActivity.this)
.setTitle("Pick a item")
.setSingleChoiceItems(items1, -1,
new OnClickListener() {
public void onClick(DialogInterface dialog,
int position) {
Toast.makeText(
getApplicationContext(),
position + "->"
+ items1[position],
Toast.LENGTH_SHORT).show();
}).show();
樣式四:
代碼:
final CharSequence[] items2 = { "Man", "Woman", "Boy", "Girl" };
final boolean[] checked = { false, false, false, false };
new AlertDialog.Builder(MainActivity.this)
.setTitle("Pick a item")
.setMultiChoiceItems(items2, checked,
new OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog,
int position, boolean isChecked) {
Toast.makeText(
getApplicationContext(),
items2[position] + "->"
+ isChecked,
Toast.LENGTH_SHORT).show();
}
}).show();
樣式五:
xml:
命名爲layout.xml,置於layout文件夾下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="#ffffffff"
android:orientation="horizontal"
android:id="@+id/dialog">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/tvname"
android:text="姓名:" />
<EditText
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/etname"
android:minWidth="100dip"/>
</LinearLayout>
java代碼:
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.layout, null);
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this);
builder.setTitle("自定義佈局").setView(layout)
.setPositiveButton("確定", null)
.setNegativeButton("取消", null).show();
如果要獲取EditView中的數據可在xml中定義id,然後 獲取edit = (EditText)layout.findViewById(id),通過getText()方法獲取