博客地址: 使用PopupWindow创建对话框风的窗口步骤如下: >调用PopupWindow的构造器创建PopupWindow对象; >调用PopupWindow的showAsDropDown(View v)将PopupWindow作为v组件的下拉组件显示出来;或调用PopupWindow的showAtLocation()方法将PopupWindow在指定位置显示出来。 >调用PopupWindow的dismiss()方法取消显示popup窗口;(1)对话框样式(2)代码实现View view = getLayoutInflater().inflate(R.layout.dialog, null); //装载R.layout.popup对应的界面布局 final PopupWindow popup = new PopupWindow(view, , ); //指定布局资源,窗口高度、长度 // popup.showAsDropDown(view); //以下拉方式显示 popup.showAtLocation(findViewById(R.id.dialogBtn), Gravity.CENTER, , ); popup.dismiss(); 注:R.layout.dialog.xml只包含一个ImageVIew和Button组件二、使用DatePickDialog、TimePickerDialog对话框 使用DataPickDialog、TimePickerDialog创建日期时间对话框,主要步骤如下: >通过new关键字创建DatePickerDialog、TimePickerDialog实例,调用它们的show()方法显示日期选择对话框和时间选择对话框; >为DatePickerDialog、TimePickerDialog绑定监听器,通过设置事件触发监听器,获取用户设置的事件 其中 DatePickerDialog(Context context, OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth) TimePickerDialog(Context context, OnTimeSetListener callBack, int hourOfDay, int minute, boolean isHourView)1.对话框样式2.代码实现 Calendar calendar = Calendar.getInstance(); new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) { Toast.makeText(MainActivity.this, "你选择的日期为:"year":"monthOfYear":" dayOfMonth, Toast.LENGTH_SHORT).show(); } } //初始化日期 , calendar.get(Calendar.YEAR) , calendar.get(Calendar.MONTH) , calendar.get(Calendar.DAY_OF_MONTH)).show(); /************************************************************************/ Calendar calendar = Calendar.getInstance(); new TimePickerDialog(MainActivity.this, new OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Toast.makeText(MainActivity.this, "你选择的时间为:"hourOfDay":"minute, Toast.LENGTH_SHORT).show(); } } //初始化时间 , calendar.get(Calendar.HOUR_OF_DAY) , calendar.get(Calendar.MINUTE), //true表示采用小时制 true).show(); 三、使用ProgressDialog创建进度条对话框 使用ProgressDialog创建进度对话框主要有两种方式: >如果只是创建简单的进度对话框,调用ProgressDialog提供的静态show()方法显示对话框即可; ProgressDialog progressDialog = ProgressDialog.show( LoginActivity.this, "", "正在登录,请稍后....."); progressDialog.dismiss(); //取消进度条对话框 >创建ProgeressDialog,然后调用方法对话框里的进度条进行设置,设置完成后将对话框显示处理,ProgressDialog包含以下常用方法: setIndeteminate(boolean indeteminate):设置对话框里的进度条不显示进度; setMax(int max):设置对话框里进度条的最大; setMax(int max):设置对话框里进度条的最大; setMessage(CharSequence message):设置对话框里显示的消息 setProgress(int value):设置对话框里进度条的进度 setProgressStyle(int style):设置对话框里进度条的风1.对话框样式2.代码实现 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //进度条 ProgressDialog progressDialog = null; final static int MAX_PROGRESS = ; private int[] data = new int[]; int progressStatus = 0; int hasData = 0; } /** * 定义一个负责更新进度条的Handler * */ Handler handler = new Handler(){ public void handleMessage(Message msg) { if(msg.what == 0x){ progressDialog.setProgress(progressStatus); } }; }; public void dialogBtn(View v){ /** * 创建一个进度条对话框 * */ progressDialog = new ProgressDialog(this); //实例化一个ProgressDialog对象 progressDialog.setTitle("任务进行中"); progressDialog.setMessage("任务正在执行中,请稍后"); progressDialog.setCancelable(false); //设置对话框能够触屏关闭 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置对话框的进度条风 progressDialog.setIndeterminate(false); //设置对话框的进度条是否显示进度 progressDialog.show(); //显示对话框 /** * 创建一个子线程,定时发送消息给Handler * */ new Thread(new Runnable(){ public void run() { while(progressStatus < MAX_PROGRESS){ progressStatus = MAX_PROGRESS*doWork()/data.length; //获取耗时操作的完成百分比 handler.sendEmptyMessage(0x); } if(progressStatus >= MAX_PROGRESS){ //任务完成,退出对话框 progressDialog.dismiss(); } } }).start(); } /** * 模拟一个耗时的操作 * */ protected int doWork() { data[hasData] = (int)(Math.random()*); try{ Thread.sleep(); //0.5s更新一次 }catch(InterruptedException e){ e.printStackTrace(); } return hasData; } } 注意:int[] data = new int[];是因为当数组大小为时,在耗时操作模块累加出现数组下标越界错误。 java.lang.ArrayIndexOutOfBoundsException: length=; index=
推荐整理分享Android对话框使用详解(二)(android对话框setview用法),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:android中有几种对话框,区别是什么?,安卓对话框控件,android 对话框,android对话框布局,android中有几种对话框,区别是什么?,android中有几种对话框,区别是什么?,android对话框setview用法,android 设置对话框的大小,内容如对您有帮助,希望把文章链接给更多的朋友!
使用Eclipse或者Android Studio导入Android源码 如果需要对Android源码进行整体研究,或者进行源码开发的过程中,有些模块比如联系人模块依赖的子模块比较多,导入源码方便模块之间各个类之间的
ViewGroup onInterceptTouchEvent,ViewGroup onTouchEvent,View onTouchEvent执行顺序说明 今天抽出了一些时间实践了viewgroup和view的触摸事件顺序,之前也试过,总是忘记,今天记下笔记说明一下首先onInterceptTouchEvent只会出现在viewgroup中,view
android的横竖屏切换 Android横竖屏切换总结(Android资料)Android横竖屏要解决的问题应该就两个:一.布局问题二.重新载入问题1.布局问题:如果不想让软件在横竖屏之间切换,