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

Android 盘点所有Dialog 对话框 大合集 详解

2011-07-15 16:38 519 查看
对话框大合集

[align=left]雨松MOMO带大家盘点Android 中的对话框

今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。

[/align]



1.确定取消对话框


对话框中有2个按钮 通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。
[align=left]
[/align]


[align=left]我们使用AlerDialog 创建对话框

[/align][align=left]view plaincopy to clipboardprint?[/align]AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);
[align=left]
view plaincopy to clipboardprint?[/align]builder.setIcon(R.drawable.icon);
builder.setTitle("你确定要离开吗?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//这里添加点击确定后的逻辑
showDialog("你选择了确定");
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//这里添加点击确定后的逻辑
showDialog("你选择了取消");
}
});
builder.create().show();
[align=left]	    builder.setIcon(R.drawable.icon);            builder.setTitle("你确定要离开吗?");            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {                public void onClick(DialogInterface dialog, int whichButton) {                    //这里添加点击确定后的逻辑                    showDialog("你选择了确定");                }            });            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {                public void onClick(DialogInterface dialog, int whichButton) {                    //这里添加点击确定后的逻辑                    showDialog("你选择了取消");                }            });            builder.create().show();

这个dialog用于现实onClick后监听的内容信息

[/align][align=left]view plaincopy to clipboardprint?[/align]private void showDialog(String str) {
w AlertDialog.Builder(MainDialog.this)
.setMessage(str)
.show();
}
[align=left]
view plaincopy to clipboardprint?[/align]AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);
builder.setIcon(R.drawable.icon);
builder.setTitle("投票");
builder.setMessage("您认为什么样的内容能吸引您?");
builder.setPositiveButton("有趣味的", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
showDialog("你选择了有趣味的");
}
});
builder.setNeutralButton("有思想的", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
showDialog("你选择了有思想的");
}
});
builder.setNegativeButton("主题强的", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
showDialog("你选择了主题强的");
}
});
builder.create().show();
AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);		                builder.setIcon(R.drawable.icon);            builder.setTitle("投票");            builder.setMessage("您认为什么样的内容能吸引您?");            builder.setPositiveButton("有趣味的", new DialogInterface.OnClickListener() {                public void onClick(DialogInterface dialog, int whichButton) {                    showDialog("你选择了有趣味的");                }            });            builder.setNeutralButton("有思想的", new DialogInterface.OnClickListener() {                public void onClick(DialogInterface dialog, int whichButton) {                    showDialog("你选择了有思想的");                                    }            });            builder.setNegativeButton("主题强的", new DialogInterface.OnClickListener() {                public void onClick(DialogInterface dialog, int whichButton) {                    showDialog("你选择了主题强的");                  }            });            builder.create().show();


3.列表框




这个数组用于列表选择

[align=left]view plaincopy to clipboardprint?[/align]final String[] mItems = {"item0","item1","itme2","item3","itme4","item5","item6"};
[align=left]
view plaincopy to clipboardprint?[/align]AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);
builder.setTitle("列表选择框");
builder.setItems(mItems, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//点击后弹出窗口选择了第几项
showDialog("你选择的id为" + which + " , " + mItems[which]);
}
});
builder.create().show();
AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);            builder.setTitle("列表选择框");            builder.setItems(mItems, new DialogInterface.OnClickListener() {                public void onClick(DialogInterface dialog, int which) {                    //点击后弹出窗口选择了第几项                    showDialog("你选择的id为" + which + " , " + mItems[which]);                }            });            builder.create().show();


4.单项选择列表框






mSingleChoice 用于记录单选中的ID

[align=left]view plaincopy to clipboardprint?[/align]int mSingleChoiceID = -1;
[align=left]
view plaincopy to clipboardprint?[/align]AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);

mSingleChoiceID = -1;
builder.setIcon(R.drawable.icon);
builder.setTitle("单项选择");
builder.setSingleChoiceItems(mItems, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
mSingleChoiceID = whichButton;
showDialog("你选择的id为" + whichButton + " , " + mItems[whichButton]);
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if(mSingleChoiceID > 0) {
showDialog("你选择的是" + mSingleChoiceID);
}
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

}
});
builder.create().show();
AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);         mSingleChoiceID = -1;         builder.setIcon(R.drawable.icon);             builder.setTitle("单项选择");             builder.setSingleChoiceItems(mItems, 0, new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialog, int whichButton) {                         mSingleChoiceID = whichButton;                         showDialog("你选择的id为" + whichButton + " , " + mItems[whichButton]);                 }             });             builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialog, int whichButton) {                     if(mSingleChoiceID > 0) {                     showDialog("你选择的是" + mSingleChoiceID);                     }                 }             });             builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialog, int whichButton) {                 }             });            builder.create().show();


5.进度条框



点击进度条框按钮后 开启一个线程计算读取的进度 假设读取结束为 100
Progress在小于100的时候一直在线程中做循环++ 只到读取结束后,停止线程。
[align=left]view plaincopy to clipboardprint?[/align] mProgressDialog = new ProgressDialog(MainDialog.this);
mProgressDialog.setIcon(R.drawable.icon);
mProgressDialog.setTitle("进度条窗口");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setMax(MAX_PROGRESS);
mProgressDialog.setButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//这里添加点击后的逻辑
}
});
mProgressDialog.setButton2("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//这里添加点击后的逻辑
}
});
mProgressDialog.show();
new Thread(this).start();

ic void run() {
int Progress = 0;
while(Progress < MAX_PROGRESS) {
try {
Thread.sleep(100);
Progress++;
mProgressDialog.incrementProgressBy(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
[align=left]
view plaincopy to clipboardprint?[/align]ArrayList <Integer>MultiChoiceID = new ArrayList <Integer>();
[align=left] ArrayList <Integer>MultiChoiceID = new ArrayList <Integer>();

[/align][align=left]view plaincopy to clipboardprint?[/align]AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);

MultiChoiceID.clear();
builder.setIcon(R.drawable.icon);
builder.setTitle("多项选择");
builder.setMultiChoiceItems(mItems,
new boolean[]{false, false, false, false, false, false, false},
new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int whichButton,
boolean isChecked) {
if(isChecked) {
MultiChoiceID.add(whichButton);
showDialog("你选择的id为" + whichButton + " , " + mItems[whichButton]);
}else {
MultiChoiceID.remove(whichButton);
}

}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String str = "";
int size = MultiChoiceID.size();
for (int i = 0 ;i < size; i++) {
str+= mItems[MultiChoiceID.get(i)] + ", ";
}
showDialog("你选择的是" + str);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

}
});
builder.create().show();
[align=left]
view plaincopy to clipboardprint?[/align]AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.test, null);
builder.setIcon(R.drawable.icon);
builder.setTitle("自定义输入框");
builder.setView(textEntryView);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

EditText userName = (EditText) textEntryView.findViewById(R.id.etUserName);
EditText password = (EditText) textEntryView.findViewById(R.id.etPassWord);
showDialog("姓名 :"  + userName.getText().toString()  + "密码:" + password.getText().toString() );
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

}
});
builder.create().show();
[align=left]           AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);            LayoutInflater factory = LayoutInflater.from(this);            final View textEntryView = factory.inflate(R.layout.test, null);                builder.setIcon(R.drawable.icon);                builder.setTitle("自定义输入框");                builder.setView(textEntryView);                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int whichButton) {                                        EditText userName = (EditText) textEntryView.findViewById(R.id.etUserName);                    EditText password = (EditText) textEntryView.findViewById(R.id.etPassWord);                    showDialog("姓名 :"  + userName.getText().toString()  + "密码:" + password.getText().toString() );                    }                });                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int whichButton) {                    }                });              builder.create().show();


[/align][align=left]view plaincopy to clipboardprint?[/align]<span style="color:#000000;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:id="@+id/dialog">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:id="@+id/dialogname">

<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/tvUserName"
android:text="姓名:" />
<EditText android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/etUserName"
android:minWidth="200dip"/>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:id="@+id/dialognum"
android:layout_below="@+id/dialogname"
>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/tvPassWord"
android:text="密码:" />
<EditText android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/etPassWord"
android:minWidth="200dip"/>
</LinearLayout>
</RelativeLayout></span>
[align=left]
view plaincopy to clipboardprint?[/align]mProgressDialog = new ProgressDialog(this);
mProgressDialog.setTitle("读取ing");
mProgressDialog.setMessage("正在读取中请稍候");
mProgressDialog.setIndeterminate(true);
mProgressDialog.setCancelable(true);
mProgressDialog.show();
[align=left]    mProgressDialog = new ProgressDialog(this);    mProgressDialog.setTitle("读取ing");    mProgressDialog.setMessage("正在读取中请稍候");    mProgressDialog.setIndeterminate(true);    mProgressDialog.setCancelable(true);    mProgressDialog.show();


最后如果你还是觉得我写的不够详细 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习 雨松MOMO希望可以和大家一起进步。

下载地址http://download.csdn.net/source/3438085[/align]

http://blog.csdn.net/xys289187120/article/details/6601613
[align=left]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: