一、基本知识点
常见的dialog
基本代码:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog dialog = builder.create();
dialog.show();
1)常见对话框
builder.setMessage("请选择你的女神");
builder.setPositiveButton
2)选择对话框
builder.setItems(items, new DialogInterface.OnClickListener()
items是一个选项内容的数组
3)单选对话框
builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener()
第二个参数:默认选中的按钮
4)多选对话框
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener()
5)自定义对话框
LayoutInflater mInflater = LayoutInflater.from(this);
View view = mInflater.inflate(R.layout.custom_dialog, null);
builder.setView(view);
二、示例代码
1、MainActivity
package com.example.dialogtest;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void commondialog(View view){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(false);
builder.setTitle("女神");
builder.setMessage("章泽天是你的女神吗?");
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNeutralButton("隐藏", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
public void selectdialog(View view){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
final String items[] = new String[]{
"章泽天",
"章泽天1",
"章泽天2",
"章泽天3"
};
builder.setTitle("选择女神");
builder.setItems(items, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), items[which], 0).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
public void singleselectdialog(View view){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("选择女神");
final String items[] = new String[]{
"章泽天",
"章泽天1",
"章泽天2",
"章泽天3"
};
builder.setSingleChoiceItems(items, 0, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), items[which], 0).show();
}
});
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
public void multiselectdialog(View view){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
final String items[] = new String[]{
"章泽天",
"章泽天1",
"章泽天2",
"章泽天3",
};
final boolean checkedItems[] = new boolean[]{
true,false,false,false
};
builder.setTitle("选择女神");
builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(getApplicationContext(), items[which], 0).show();
}
});
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
public void customdialog(View view){
LayoutInflater inflater = LayoutInflater.from(this);
View mView = inflater.inflate(R.layout.custom_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请输入用户信息");
builder.setView(mView);
final AlertDialog dialog = builder.create();
dialog.show();
Button okBtn = (Button) mView.findViewById(R.id.bt_ok);
okBtn.setOnClickListener(new View.OnClickListener() {//注意,这个demo用到了两个OnClickListener.所以这里需要加上View
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
三、源码下载
http://download.csdn.net/detail/caihongshijie6/7799073
四、效果图