27-Dialog练习题,点击弹出一个对话框,选项是一个列表

MainActivity.java

package com.example.dialoglisttest;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class MainActivity extends Activity {
	final int LIST_DIALOG = 0x001;
	// 定义一个资源数组,分别为图片和名称
	public int[] images = { R.drawable.bird, R.drawable.dolphin,
			R.drawable.panda };
	public String[] names = { "画眉鸟", "海豚", "熊猫" };

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Button btnShow = (Button) findViewById(R.id.btnSelect);
		btnShow.setOnClickListener(new View.OnClickListener() {

			public void onClick(View v) {
				// 显示Dialog
				showDialog(LIST_DIALOG);

			}
		});
	}

	@Override
	protected Dialog onCreateDialog(int id) {
		switch (id) {
		case LIST_DIALOG:
			// 创建一个builder实例
			Builder builder = new AlertDialog.Builder(MainActivity.this);

			// 设置对话框的图标和名称
			builder.setIcon(R.drawable.tool);
			builder.setTitle("动物列表");

			// 创建一个List集合,用来存放列表项
			List> listitems = new ArrayList>();

			// 使用for循环将数据添加到listitems集合中去
			for (int i = 0; i < images.length; i++) {
				Map listitem = new HashMap();
				listitem.put("image", images[i]);
				listitem.put("names", names[i]);
				listitems.add(listitem);
			}

			// 创建SimpleAdapter
			SimpleAdapter adapter = new SimpleAdapter(this, listitems,
					R.layout.row, new String[] { "image", "names" }, new int[] {
							R.id.image, R.id.name });

			/**
			 * 设置一个列表项
			 */
			builder.setAdapter(adapter, new DialogInterface.OnClickListener() {

				public void onClick(DialogInterface dialog, int which) {
					TextView textView = (TextView) findViewById(R.id.text);
					ImageView imageView=(ImageView) findViewById(R.id.imageShow);
					textView.setText("你所选择的喜欢的动物是:" + names[which]);
					imageView.setImageResource(images[which]);
				}
			});

			// 创建builder
			builder.create();
			// 显示builder
			builder.show();
		}
		return null;
	}
}

row.xml




    

    


activity_main.xml



    

    

    

27-Dialog练习题,点击弹出一个对话框,选项是一个列表_第1张图片



27-Dialog练习题,点击弹出一个对话框,选项是一个列表_第2张图片

27-Dialog练习题,点击弹出一个对话框,选项是一个列表_第3张图片


你可能感兴趣的:(Android应用程序开发)