Android学习笔记之具有选择功能的对话框

为了实现具有选择功能的对话框这一程序,首先我们来介绍一个非常有用的组件——AlertDialog。

java.lang.Object

  |-- Android.app.Dialog

    |-- android.app.AlertDialog

从继承关系中我们可以看出,AlertDialog直接继承自Dialog。我们知道,Dialog窗口主要目的是与User确认及互动,用于“程序提示”,“警告”或“确认”等,是android应用程序中非常重要的一部分。

在android sdk中,虽然有许多窗口,但真正具有交互功能的则为AlertDialog对话窗口。AlertDialog同样提供了一个静态的嵌套类AlertDialog.Builder供开发者使用。

AlertDialog可以以列表项目的方式来显示内容,这种显示方式也是非常常见的,如用于投票、选择器以及遥控器等应用程序。

程序运行效果:

Android学习笔记之具有选择功能的对话框

Android学习笔记之具有选择功能的对话框

Activity程序如下所示,注意在第二个AlertDialog对话框中设置了两个按钮,但由于本程序重在说明AlertDialog用法,故未添加具体的实现。

public class MainActivity extends Activity
{
 private Button button=null;
 
 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  super.setContentView(R.layout.activity_main);
  this.button=(Button)super.findViewById(R.id.button);
  //设置按钮单击消息响应
  this.button.setOnClickListener(new OnClickListener()
  {
      @Override
   public void onClick(View v)
      {
       //新建AlertDialog对话框
    new AlertDialog.Builder(MainActivity.this)
    .setTitle(R.string.string_alert_title)
    .setItems(R.array.items_dialog,new DialogInterface.OnClickListener()
    {
     @Override
     public void onClick(DialogInterface dialog, int which)
     {
      //取出响应字符串资源
         CharSequence string_body=MainActivity.this.getResources().getString(R.string.string_alert_body);
         final String[] colors=MainActivity.this.getResources().getStringArray(R.array.items_dialog);
         //弹出新的对话框
      new AlertDialog.Builder(MainActivity.this)
      .setMessage(string_body+colors[which])
      .setNeutralButton(R.string.string_alert_ok, new DialogInterface.OnClickListener() //确认操作
      {
       @Override
       public void onClick(DialogInterface dialog, int which)
       {
        //添加操作
       }
      })
      .setNegativeButton(R.string.string_alert_cancel, new DialogInterface.OnClickListener() //取消操作
      {
       @Override
       public void onClick(DialogInterface dialog, int which)
       {
        dialog.dismiss();
       }
      }).show();
     }
    }).show();
   }
  });
 }

}

布局文件非常简单,只有一个Button组件,此处不再给出。
 
字符串资源文件如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string>demo3</string>
    <string>Settings</string>
    <string>Hello world!</string>
    <string>选择颜色</string>
    <string>请选择您喜欢的颜色</string>
    <string>你选择的是:</string>
    <string>确认</string>
    <string>取消</string>
   
    <array>
        <item>红色</item>
        <item>绿色</item>
        <item>蓝色</item>
    </array>
   
</resources>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/41d345425721ec27f15ee5a97d63164e.html