首页 > 系统 > Android > 正文

Android AlertDialog对话框详解及实例

2019-12-12 04:12:39
字体:
来源:转载
供稿:网友

Android  AlertDialog

关系图如下:

Android主要提供四种对话框:

1:AlertDialog:功能最丰富,实际应用最广的对话框。
2:ProgressDialog:进度条对话框
3:DatePickerDialog:日期选择器对话框
4:TimePickerDialog:时间选择器对话框

创建一个对话框的步骤:

AlertDialog.Builder builder = new AlertDialog.Builder(this)        // 1:设置对话框标题        .setTitle("自定义列表项对话框")            // 2:设置图标        .setIcon(R.drawable.tools)            // 3:设置内容        .setMessage("对话框的测试内容/n第二行内容");    // 为AlertDialog.Builder添加“确定”按钮    setPositiveButton(builder);    // 为AlertDialog.Builder添加“取消”按钮    setNegativeButton(builder)        .create()        .show();

代码区:

main.xml代码区:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:gravity="center_horizontal"><!-- 显示一个普通的文本编辑框组件 --><EditText   android:id="@+id/show"  android:layout_width="match_parent"   android:layout_height="wrap_content"   android:editable="false"/><!-- 定义一个普通的按钮组件 --><Button  android:layout_width="match_parent"   android:layout_height="wrap_content"   android:text="简单对话框"  android:onClick="simple"  /><!-- 定义一个普通的按钮组件 --><Button  android:layout_width="match_parent"   android:layout_height="wrap_content"   android:text="简单列表项对话框"  android:onClick="simpleList"  /> <!-- 定义一个普通的按钮组件 --><Button  android:layout_width="match_parent"   android:layout_height="wrap_content"   android:text="单选列表项对话框"  android:onClick="singleChoice"  /> <!-- 定义一个普通的按钮组件 --><Button  android:layout_width="match_parent"   android:layout_height="wrap_content"   android:text="多选列表项对话框"  android:onClick="multiChoice"  /> <!-- 定义一个普通的按钮组件 --><Button  android:layout_width="match_parent"   android:layout_height="wrap_content"   android:text="自定义列表项对话框"  android:onClick="customList"  /> <!-- 定义一个普通的按钮组件 --><Button  android:layout_width="match_parent"   android:layout_height="wrap_content"   android:text="自定义View对话框"  android:onClick="customView"  />         </LinearLayout>

Activity代码区:

public class MainActivity extends Activity {  TextView show;  String[] items = new String[] {      "aserbao", "Android",      " Java",      "IOS" };  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    show = (TextView) findViewById(R.id.show);  }  public void simple(View source)  {    AlertDialog.Builder builder = new AlertDialog.Builder(this)      // 设置对话框标题      .setTitle("简单对话框")      // 设置图标      .setIcon(R.drawable.tools)      .setMessage("对话框的测试内容/n第二行内容");    // 为AlertDialog.Builder添加“确定”按钮    setPositiveButton(builder);    // 为AlertDialog.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 OnClickListener()        {          @Override          public void onClick(DialogInterface dialog, int which)          {            show.setText("你选中了《" + items[which] + "》");          }        });    // 为AlertDialog.Builder添加“确定”按钮    setPositiveButton(builder);    // 为AlertDialog.Builder添加“取消”按钮    setNegativeButton(builder)        .create()        .show();  }  public void singleChoice(View source)  {    AlertDialog.Builder builder = new AlertDialog.Builder(this)        // 设置对话框标题        .setTitle("单选列表项对话框")            // 设置图标        .setIcon(R.drawable.tools)            // 设置单选列表项,默认选中第二项(索引为1)        .setSingleChoiceItems(items, 1, new OnClickListener()        {          @Override          public void onClick(DialogInterface dialog, int which)          {            show.setText("你选中了《" + items[which] + "》");          }        });      // 为AlertDialog.Builder添加“确定”按钮      setPositiveButton(builder);      // 为AlertDialog.Builder添加“取消”按钮      setNegativeButton(builder)        .create()        .show();  }  public void multiChoice(View source)  {    AlertDialog.Builder builder = new AlertDialog.Builder(this)        // 设置对话框标题        .setTitle("多选列表项对话框")            // 设置图标        .setIcon(R.drawable.tools)            // 设置多选列表项,设置勾选第2项、第4项        .setMultiChoiceItems(items            , new boolean[]{false , true ,false ,true}, null);    // 为AlertDialog.Builder添加“确定”按钮    setPositiveButton(builder);    // 为AlertDialog.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);    // 为AlertDialog.Builder添加“确定”按钮    setPositiveButton(builder);    // 为AlertDialog.Builder添加“取消”按钮    setNegativeButton(builder)        .create()        .show();  }  public void customView(View source)  {    // 装载app/src/main/res/layout/login.xml界面布局文件    TableLayout loginForm = (TableLayout)getLayoutInflater()        .inflate( R.layout.login, null);    new AlertDialog.Builder(this)        // 设置对话框的图标        .setIcon(R.drawable.tools)        // 设置对话框的标题        .setTitle("自定义View对话框")        // 设置对话框显示的View对象        .setView(loginForm)        // 为对话框设置一个“确定”按钮        .setPositiveButton("登录", new OnClickListener() {          @Override          public void onClick(DialogInterface dialog,            int which) {            // 此处可执行登录处理          }        })        // 为对话框设置一个“取消”按钮        .setNegativeButton("取消", new OnClickListener()        {          @Override          public void onClick(DialogInterface dialog,                    int which)          {            // 取消登录,不做任何事情          }        })        // 创建并显示对话框        .create()        .show();  }  private AlertDialog.Builder setPositiveButton(      AlertDialog.Builder builder)  {    // 调用setPositiveButton方法添加“确定”按钮    return builder.setPositiveButton("确定", new OnClickListener()    {      @Override      public void onClick(DialogInterface dialog, int which)      {        show.setText("单击了【确定】按钮!");      }    });  }  private AlertDialog.Builder setNegativeButton(      AlertDialog.Builder builder)  {    // 调用setNegativeButton方法添加“取消”按钮    return builder.setNegativeButton("取消", new OnClickListener()    {      @Override      public void onClick(DialogInterface dialog, int which)      {        show.setText("单击了【取消】按钮!");      }    });  }}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表