android提供的弹出框很单调,往往在开发中需要定义自己的AlertDialog来适应开发的需要
android用户帮助里面的方法是这样:
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Are you sure you want to exit?") .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { MyActivity.this.finish(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create();
效果如图
1 实现单选框的弹出框
builder = new AlertDialog.Builder(MainActivity .this); builder.setTitle("选择哪个?") .setSingleChoiceItems(item,gameMethodValuesIndex,new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { gameMethodValuesIndex = which; Toast.makeText(getApplicationContext(), ""+item[which], Toast.LENGTH_SHORT).show(); } }) .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }) .setNegativeButton("取消", null); AlertDialog dialog = builder.create(); dialog.show();
item 是一个数组,自己定义一个就行了,编辑器不太会用,暂不上传了
效果如图:
(本地图片上传不了。。。擦,还是我没有找到方法?有知道的童鞋告诉一下,俺只找到了上传网络图片的方法)
要实现上面的效果还可以这样,自定义配置文件
LayoutInflater inflater = null; inflater = (LayoutInflater) getSystemService(getApplicationContext().LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.main, null); builder = new AlertDialog.Builder(MainActivity .this); builder.setTitle("选择哪个?") .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }) .setNegativeButton("取消", null) .setView(view) ; AlertDialog dialog = builder.create(); dialog.show();
掌握了这个用法基本上自定义alertdialog就没什么了,可以应对大部分的开发