Dialog的多种使用

直接附代码了:


package com.example.dialog;

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

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

public class MainActivity extends Activity {
    private TextView tv;
    private List<Map<String, Object>> list;
    private String color=null;
    private EditText editText_name,editText_pwd;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		tv=(TextView) findViewById(R.id.textView1);
	}
	public void click(View view){
		switch (view.getId()) {
		case R.id.button1://弹出普通的dialog
			//创建alertdialog的实例对象
			AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
			dialog.setTitle(R.string.title);//设置dialog的标题
			dialog.setIcon(R.drawable.ic_launcher);//  设置dialog的图标
			dialog.setMessage("亲,确定要退出吗?");//设置dialog的内容
			dialog.create();//创建dialog
			dialog.show();//展示dialog
			
//			new AlertDialog.Builder(MainActivity.this).setTitle("").setIcon(R.drawable.f029).setMessage("").create().show();
			break;
		case R.id.button2://弹出带有按钮的dialog
			AlertDialog.Builder dialog2=new AlertDialog.Builder(MainActivity.this);
			dialog2.setTitle(R.string.title);
			dialog2.setIcon(R.drawable.ic_launcher);
			dialog2.setMessage("亲,再看看吧");
			//第一个参数表示按钮中的显示的文本  第二个参数 表示当点击按钮时触发的事件
			dialog2.setPositiveButton("确定", new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {//表示按钮被点击
					Toast.makeText(MainActivity.this,""+which, Toast.LENGTH_SHORT).show();
				}
			});
			dialog2.setNegativeButton("取消", new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					
				}
			});
			dialog2.setNeutralButton("稍后提醒",new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					
				}
			});
			dialog2.create();
			dialog2.show();
			break;
		case R.id.button3://展示dailog中的显示内容为列表  注意:如果dialog的message部分显示的是items时不要添加setMessage()
			AlertDialog.Builder dialog3=new AlertDialog.Builder(MainActivity.this);
			dialog3.setTitle(R.string.title_color);
			dialog3.setIcon(R.drawable.ic_launcher);
			//第一个参数表示数组的资源id  或者是string数组对象 第二个参数表示当前点击某一项触发的事件
			final String[] colors=getResources().getStringArray(R.array.colors);
			dialog3.setItems(colors, new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {//int which 当前被点击item的下标
					//Toast.makeText(MainActivity.this,""+which, Toast.LENGTH_SHORT).show();
					if("red".equals(colors[which])){
						tv.setTextColor(Color.RED);
					}else if("blue".equals(colors[which])){
						tv.setTextColor(Color.BLUE);
					}
				}
			});
			dialog3.create();
			dialog3.show();
			break;
		case R.id.button4:
			AlertDialog.Builder dialog4=new AlertDialog.Builder(MainActivity.this);
			dialog4.setTitle("标题");
			dialog4.setIcon(R.drawable.ic_launcher);
			int[] images={R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};
			list=new ArrayList<Map<String,Object>>();
			for(int i=0;i<5;i++){
				Map<String, Object> map=new HashMap<String, Object>();
				map.put("images", images[i]);
				map.put("text", "item"+i);
				list.add(map);
			}
			SimpleAdapter adapter=new SimpleAdapter(MainActivity.this, list,R.layout.activity_item,
					new String[]{"images","text"}, 
					new int[]{R.id.imageView1,R.id.textView1});
			//将适配器中的数据展示到dialog的内容位置
			dialog4.setAdapter(adapter, new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					String str=(String) list.get(which).get("text");//根据点击的item的下标获取当前点击item的文本数据
					Toast.makeText(MainActivity.this,str, Toast.LENGTH_SHORT).show();
				}
			});
			dialog4.create().show();
			break;
		case R.id.button5://弹出dialog的内容为单选列表
			AlertDialog.Builder dialog5=new AlertDialog.Builder(MainActivity.this);
			dialog5.setTitle(R.string.title_color).setIcon(R.drawable.ic_launcher);
			//第一个参数表示当前显示的列表资源 string数组 数组的资源id 适配器 cursor 
			//表示items中默认选中item的下标 如果没有默认被选中则时-1
			final String[] cs=getResources().getStringArray(R.array.colors);
			
			dialog5.setSingleChoiceItems(R.array.colors, 0, new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					color=cs[which];
				}
			});
			dialog5.setPositiveButton("yes", new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					//获取选择的item的内容进行操作
				}
			});
			dialog5.create().show();
			break;
		case R.id.button6:
			AlertDialog.Builder dialog6=new AlertDialog.Builder(MainActivity.this);
			dialog6.setTitle(R.string.title_color).setIcon(R.drawable.ic_launcher);
			//第二个参数 表示当前默认被选中的条目  如果为null表示默认没有选中  如果有选中需要创 件boolean类型的数组  数组的长度必须和数据的长度一致
			dialog6.setMultiChoiceItems(R.array.colors, new boolean[]{true,true,false}, new OnMultiChoiceClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which, boolean isChecked) {
						
				}
			});
			dialog6.setPositiveButton("yes", new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					//获取选择的item的内容进行操作
				}
			});
			dialog6.create().show();
			break;
		case R.id.button7://弹出自定义布局的dialog
			AlertDialog.Builder dialog7=new AlertDialog.Builder(MainActivity.this);
			dialog7.setTitle("登录").setIcon(R.drawable.ic_launcher);
			LayoutInflater layoutInflater=LayoutInflater.from(MainActivity.this);
			View view1=layoutInflater.inflate(R.layout.dialog_signin, null);
			editText_name=(EditText) view1.findViewById(R.id.username);
			editText_pwd=(EditText) view1.findViewById(R.id.password);
			
			dialog7.setView(view1);//设置自定义布局
			
			dialog7.setPositiveButton("确定", new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					String name=editText_name.getText().toString().trim();
					String pwd=editText_pwd.getText().toString().trim();
					Toast.makeText(MainActivity.this, name+"----"+pwd, Toast.LENGTH_SHORT).show();
				}
			});
			dialog7.setNegativeButton("取消", new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// TODO Auto-generated method stub
					
				}
			});
			dialog7.create().show();
			break;
		case R.id.button8://弹出日期选择对话框
			/*第一个参数 上下文对象
			 * 第二个参数 当设置日期时回调的监听方法
			 * 第三个参数 默认的年份
			 * 第四个参数  默认的月份
			 * 第五个参数 默认的日期
			 */
			DatePickerDialog datePickerDialog=new DatePickerDialog(MainActivity.this, new OnDateSetListener() {
				
				@Override
				public void onDateSet(DatePicker view, int year, int monthOfYear,
						int dayOfMonth) {
					Toast.makeText(MainActivity.this, year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日",Toast.LENGTH_SHORT).show();
				}
			}, 2014, 4, 25);
			datePickerDialog.show();
			break;
		case R.id.button9:
			/*第一个参数 上下文对象
			 * 第二个参数 设置完成时间之后的回调方法
			 * 第三个参数 设置默认的小时数
			 * 第四个参数 设置默认的分钟数
			 * 第五个参数 表示是否以24小时计时法计时  如果true表示24h 如果false表示12h
			 */
			 TimePickerDialog dialog9=new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {
				
				@Override
				public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
					Toast.makeText(MainActivity.this, hourOfDay+"时"+minute+"分钟", Toast.LENGTH_SHORT).show();
				}
			}, 18, 20, false);
			 dialog9.show();
			break;
		}
	}
}





















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值