万书网 > 文学作品 > Android从入门到精通 > 第52页

第52页





}



});



alert.show();  //显示对话框



}



});

运行本实例,单击“退出”按钮,将弹出如图4.25所示的询问是否退出的提示对话框,单击“不”按钮,不退出游戏;单击“是的”按钮,将退出游戏。



图4.25 弹出询问是否退出的对话框

4.2.5 范例2:带图标的列表对话框

例4.15   在Eclipse中创建Android项目,名称为4.15,弹出带图标的列表对话框。(实例位置:光盘\TM\sl\4\4.15)

(1)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的TextView组件删除,然后添加一个用于打开列表对话框的按钮。由于此处的布局代码比较简单,这里就不再给出。

(2)编写用于布局列表项内容的XML布局文件items.xml,在该文件中,采用水平线性布局管理器,并在该布局管理器中添加一个ImageView组件和一个TextView组件,分别用于显示列表项中的图标和文字,具体代码如下:








android:orientation="horizontal"



android:layout_width="match_parent"



android:layout_height="match_parent">






android:id="@+id/image"



android:paddingLeft="10px"



android:paddingTop="20px"



android:paddingBottom="20px"



android:adjustViewBounds="true"



android:maxWidth="72px"



android:maxHeight="72px"



android:layout_height="wrap_content"



android:layout_width="wrap_content"/>






android:layout_width="wrap_content"



android:layout_height="wrap_content"



android:padding="10px"



android:layout_gravity="center"



android:id="@+id/title"  />





(3)在主活动MainActivity的onCreate()方法中,创建两个用于保存列表项图片id和文字的数组,并将这些图片id和文字添加到List集合中,然后创建一个SimpleAdapter简单适配器,具体代码如下:

int[]  imageId  =  new  int[]  {  R.drawable.img01,  R.drawable.img02,



R.drawable.img03,  R.drawable.img04,  R.drawable.img05  };  //定义并初始化保存图片id的数组



final  String[]  title  =  new  String[]  {  "程序管理",  "保密设置",  "安全设置",



"邮件设置","铃声设置"  };  //定义并初始化保存列表项文字的数组



List>  listItems  =  new  ArrayList>();  //创建一个List集合



//通过for循环将图片id和列表项文字放到Map中,并添加到List集合中



for  (int  i  =  0;  i  <  imageId.length;  i++)  {



Map  map  =  new  HashMap();  //实例化map对象



map.put("image",  imageId[i]);



map.put("title",  title[i]);



listItems.add(map);  //将map对象添加到List集合中



}



final  SimpleAdapter  adapter  =  new  SimpleAdapter(this,  listItems,



R.layout.items,  new  String[]  {  "title",  "image"  },  new  int[]  {



R.id.title,  R.id.image  });  //创建SimpleAdapter

(4)获取布局文件中添加的按钮,并为其添加单击事件监听器,在重写的onClick()方法中,应用AlertDialog类创建一个带图标的列表对话框,并实现在单击列表项时,获取列表项的内容,具体代码如下:

Button  button1  =  (Button)  findViewById(R.id.button1);  //获取布局文件中添加的按钮



button1.setOnClickListener(new  View.OnClickListener()  {



@Override



public  void  onClick(View  v)  {



Builder  builder  =  new  AlertDialog.Builder(MainActivity.this);



builder.setIcon(R.drawable.advise);  //设置对话框的图标



builder.setTitle("设置:");  //设置对话框的标题



//添加列表项



builder.setAdapter(adapter,  new  OnClickListener()  {



@Override



public  void  onClick(DialogInterface  dialog,  int  which)  {



Toast.makeText(MainActivity.this,



"您选择了[  "  +  title[which]+"  ]",  Toast.LENGTH_SHORT).show();



}



});



builder.create().show();  //创建对话框并显示



}



});

运行本实例,单击“打开设置对话框”按钮,将弹出如图4.26所示的选择设置项目的对话框,单击任意列表项,都将关闭该对话框,并通过消息提示框显示选择的列表项内容。



图4.26 带图标的列表对话框





4.3 经典范例

4.3.1 实现仿Windows  7图片预览窗格效果

例4.16   在Eclipse中创建Android项目,名称为4.16,实现仿Windows  7图片预览窗格效果。(实例位置:光盘\TM\sl\4\4.16)