《老罗Android》学习之对话框

1. AlertDialog
 该对话框中可以放置1~3个按键和一系列的 Items 。
实例:
public class MainActivity extends Activity {
        .....................
	// 定义3个item列表选项
	private final CharSequence[] items = { "北京", "上海", "广州" };
	public void onCreate(Bundle savedInstanceState) {
                ..............
	button.setOnClickListener(new View.OnClickListener() {
		public void onClick(View v) {
		AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
		builder.setTitle("提示");
		builder.setMessage("你确定要删除吗?");
		builder.setIcon(R.drawable.ic_action_search);
		builder.setPositiveButton("确定", new OnClickListener() {
		  public void onClick(DialogInterface dialog, int which) {
			// 完成用户的操作,比如删除数据、提交请求等
			// dialog.dismiss();//让对话框消失
			}
		});
		builder.setNegativeButton("取消", new OnClickListener() {
		   public void onClick(DialogInterface dialog, int which) {
			// 取消用户的操作,比如是停止下载
			}
		});
		builder.setNeutralButton("忽略", new OnClickListener() {
		    public void onClick(DialogInterface dialog, int which) {
			// 忽略用户的操作
		  }
		});
		AlertDialog alertDialog = builder.create();
		alertDialog.show();// 让对话框显示
			}
		});
	button2.setOnClickListener(new View.OnClickListener() {
	  public void onClick(View v) {
	AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
	builder.setTitle("请选择以下城市");
	// builder.setMessage("请选择以下城市");//不能设置Message的内容
	  builder.setItems(items, new OnClickListener() {
		public void onClick(DialogInterface dialog, int which) {
		CharSequence select_item = items[which];
		Toast.makeText(MainActivity.this, "-->>" + select_item,1).show();
			}
		});
		AlertDialog dialog = builder.create();
		dialog.show();
		}
	});
	button3.setOnClickListener(new View.OnClickListener() {
	public void onClick(View v) {
	AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
		builder.setTitle("请选择以下城市");
	builder.setSingleChoiceItems(items, -1, new OnClickListener() {
		public void onClick(DialogInterface dialog, int which) {
		CharSequence select_item = items[which];
		Toast.makeText(MainActivity.this, select_item, 1).show();
		dialog.dismiss();
			}
	});
	AlertDialog dialog = builder.create();
	dialog.show();
		}
	});
        button4.setOnClickListener(new View.OnClickListener() {
	public void onClick(View v) {
	AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
	builder.setTitle("请选择以下城市");
	// 第二个参数可以设置为null,表示没有选择默认被选中
	//使用StringBuffer 追加,中间用逗号分隔开
	builder.setMultiChoiceItems(R.array.city, new boolean[] { false,false, false }, new OnMultiChoiceClickListener() {
	public void onClick(DialogInterface dialog, int which,boolean isChecked) {
			}
	});
	builder.setPositiveButton("确定", new OnClickListener() {
		public void onClick(DialogInterface dialog, int which) {
				//直接获取dialog 的选中的值
			}
		});
		AlertDialog dialog = builder.create();
	dialog.show();
			}
		});
	}
}
2.  ProgressDialog
实例代码:
public class MainActivity extends Activity {
      ................
public void onCreate(Bundle savedInstanceState) {
      ...........
  button.setOnClickListener(new View.OnClickListener() {
		public void onClick(View v) {//转圈
		ProgressDialog dialog = new ProgressDialog(MainActivity.this);
		dialog.setTitle("提示");
		dialog.setMessage("正在加载,请稍后.....");
		dialog.show();// 显示对话框
		// dialog.dismiss();//隐藏对话框,结合线程或者消息使用
		}
	});
   button2.setOnClickListener(new View.OnClickListener() {//进度条
		public void onClick(View v) {
		// new ProgressDialog(MainActivity.this,ProgressDialog.STYLE_HORIZONTAL);第一种方式
		ProgressDialog dialog = new ProgressDialog(MainActivity.this);
		dialog.setTitle("下载提示");
		dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
		dialog.setProgress(50);// 如果加上线程操作,
		dialog.setCancelable(false);//这时点击是无效的
		dialog.show();
		}
	});
	button3.setOnClickListener(new View.OnClickListener() {
		//创建一个自定义的对话框
		public void onClick(View v) {
		CustomDialog dialog = new CustomDialog(MainActivity.this);
		dialog.show();
		}
	});
}
}
自定义对话框:
public class CustomDialog {
	private Context context;
	private Dialog dialog;
	public CustomDialog(Context context) {
		this.context = context;
		dialog = new Dialog(context);
	}
	public void show() {
	View view = LayoutInflater.from(context).inflate(R.layout.custom_dialog, null);
		// setContentView(R.layout.custom_dialog);//加载自定义对话框的布局
		dialog.setContentView(view);
		dialog.setTitle("自定义的对话框");
		TextView textView = (TextView) view.findViewById(R.id.text);
		textView.setText("你好,自定义对话框");
		textView.setTextColor(Color.BLACK);
		ImageView imageView = (ImageView) view.findViewById(R.id.image);
		imageView.setImageResource(R.drawable.pro6);
		dialog.show();
	}
}





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值