1.AlertDialog生成的对话框的基本结构:①图标区②标题区③内容区④按钮区
2.用AlertDialog创建对话框的步骤:
①创建AlertDialog.Builder对象;
②调用AlertDialog.Builder的setTitle()或setCustomTitle()方法设置标题;
③调用AlertDialog.Builder的setIcon()方法设置标题;
④调用AlertDialog.Builder的相关设置方法设置对话框的内容(6中会在下面给出介绍);
⑤调用AlertDialog.Builder的setPositiveButton()、setNegativeButton()或setNeutralButton()方法添加多个按钮;
⑥调用AlertDialog.Builder的creat()方法创建AlertDialog对象,再调用AlertDialog对象的show()方法将该对话框显示出啦;
3.设置对话框内容的6种方法:
①setMessage():设置对话框内容为简单文本;
②setItems():设置对话框内容为简单列表项;
③setSingleChoiceItems();设置对话框内容为单选列表项;
④setMultiChoiceItems();设置对话框内容为多选列表项;
⑤setAdapter();设置对话框内容为自定义列表项;
⑥setView();设置对话框内容为自定义View;
import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.ArrayAdapter; import android.widget.TableLayout; public class MainActivity extends Activity { TextView show; //设置对话框显示内容的资源数组; String [] items = new String[] { "疯狂java讲义","疯狂Android讲义", "疯狂ajAx讲义","java EE" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); show = (TextView)findViewById(R.id.show); } //点击确定按钮执行的功能函数 private AlertDialog.Builder setPositiveButton(AlertDialog.Builder builder) { return builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { show.setText("单击了确定按钮"); } }); } //点击取消按钮执行的功能函数 private AlertDialog.Builder setNegativeButton(AlertDialog.Builder builder) { return builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { show.setText("单击了取消按钮"); } }); } //创建对话框内容为简单文本内容的对话框 public void simple(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) .setTitle("简单对话框")//设置对话框的标题 .setIcon(R.drawable.tools)//设置对话框的图标 .setMessage("对话框的测试内容\n第二行内容");//设置对话框的内容 setPositiveButton(builder); setNegativeButton(builder).create().show(); } //创建对话框内容为简单列表项的对话框 public void simpleList(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) .setTitle("简单文本对话框") .setIcon(R.drawable.tools) .setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { show.setText("你选中了《" + items[which] + "》"); } }); setPositiveButton(builder); setNegativeButton(builder).create().show(); } //设置对话框内容为单选列表项的对话框 public void singlechoice(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) .setTitle("单选列表项对话框") .setIcon(R.drawable.tools) .setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { show.setText("你选中了《" + items[which] + "》"); } }); setPositiveButton(builder); setNegativeButton(builder).create().show(); } //设置对话框内容为多选列表项的对话框 public void multiChoice(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) .setTitle("多选列表项对话框") .setIcon(R.drawable.tools) .setMultiChoiceItems(items, new boolean[]{false, true, false, true}, null); setPositiveButton(builder); setNegativeButton(builder).create().show(); } //设置对话框内容为自定义列表项的对话框 public void customList(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) .setTitle("自定义列表对话框") .setIcon(R.drawable.tools) .setAdapter(new ArrayAdapter<String>(this, R.layout.array_item, items), null); setPositiveButton(builder); setNegativeButton(builder).create().show(); } //设置对话框内容为自定义View的对话框 public void customView(View source) { TableLayout loginForm = (TableLayout)getLayoutInflater().inflate(R.layout.login,null); new AlertDialog.Builder(this) .setTitle("自定义View对话框") .setIcon(R.drawable.tools) .setView(loginForm) .setPositiveButton("登录", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .create().show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }