Android自定义View—自定义dialog的使用
2015-06-12 16:47
561 查看
1、dialog是一种常用的对话框,使用方便,相比较popupwindow,dialog不用改变背景的透明度来使背景变暗,样式也较为多样,可以使用系统的简单的样式,也可以使用自定义的样式,将一个xml或者一个activity自定义为一个dialog。
首先创建一个alertdialog.builder 然后将xml实例化为一个view,给这个builder设置标题以及将自定义的view设置为builder的view,将dialog创建并显示出来。如果要对dialog中的控件进行操作的话,就得先找到dialog中的控件,注意在findviewbyid的前面要加上一个dialog,证明你是在这个dialog找的控件,
2、dialog设置无标题栏:
3、自定义dialog,包括自定义的xml布局、dialog的相对位置、dialog的长宽:
4、当dialog内有多个控件需要进行点击事件的时候,可以先自定义个OnclickListener,然后让每个点击事件的参数都设置为自定义的OnclickListener(需要注意的是default:
break;这两个必须加上,不然就会报错):
首先创建一个alertdialog.builder 然后将xml实例化为一个view,给这个builder设置标题以及将自定义的view设置为builder的view,将dialog创建并显示出来。如果要对dialog中的控件进行操作的话,就得先找到dialog中的控件,注意在findviewbyid的前面要加上一个dialog,证明你是在这个dialog找的控件,
AlertDialog.Builder builder = new AlertDialog.Builder( message.this); LayoutInflater inflater = getLayoutInflater(); View view = inflater.inflate( R.layout.activity_main_user_message_line, null); builder.setTitle(""); builder.setView(view); AlertDialog dialog = builder.create(); dialog.show(); main_user_message_rl1 = (RelativeLayout) dialog .findViewById(R.id.main_user_message_line_rl1); main_user_message_rl1 .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(); i.setAction(Intent.ACTION_CALL); i.setData(Uri.parse("tel:"+"0757-07570757")); message.this.startActivity(i); } });
2、dialog设置无标题栏:
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
3、自定义dialog,包括自定义的xml布局、dialog的相对位置、dialog的长宽:
dialog.setContentView(R.layout.activity_report_popupwindow); Window dialogwindow = dialog.getWindow(); WindowManager.LayoutParams lp = dialogwindow.getAttributes(); dialogwindow.setGravity(Gravity.LEFT | Gravity.TOP); lp.x = 0; lp.y = 350; lp.width = ViewGroup.LayoutParams.MATCH_PARENT; lp.height = 600; dialogwindow.setAttributes(lp); dialog.show();
4、当dialog内有多个控件需要进行点击事件的时候,可以先自定义个OnclickListener,然后让每个点击事件的参数都设置为自定义的OnclickListener(需要注意的是default:
break;这两个必须加上,不然就会报错):
main_repor_ll_dialog_today.setOnClickListener(new Myonclick()); main_repor_ll_dialog_this_week.setOnClickListener(new Myonclick()); main_repor_ll_dialog_last_week.setOnClickListener(new Myonclick()); main_repor_ll_dialog_this_month.setOnClickListener(new Myonclick()); main_repor_ll_dialog_last_month.setOnClickListener(new Myonclick()); main_repor_ll_dialog_this_season.setOnClickListener(new Myonclick()); main_repor_ll_dialog_last_season.setOnClickListener(new Myonclick()); main_repor_ll_dialog_mine.setOnClickListener(new Myonclick()); class Myonclick implements View.OnClickListener{ public void onClick(View v) { switch (v.getId()){ case R.id.main_repor_ll_dialog_today: Toast.makeText(Report.this,"这是第一个",Toast.LENGTH_SHORT).show(); break; case R.id.main_repor_ll_dialog_this_week: Toast.makeText(Report.this,"这是第二个",Toast.LENGTH_SHORT).show(); break; case R.id.main_repor_ll_dialog_last_week: Toast.makeText(Report.this,"这是第三个",Toast.LENGTH_SHORT).show(); break; case R.id.main_repor_ll_dialog_this_month: Toast.makeText(Report.this,"这是第四个",Toast.LENGTH_SHORT).show(); break; case R.id.main_repor_ll_dialog_last_month: Toast.makeText(Report.this,"这是第五个",Toast.LENGTH_SHORT).show(); break; case R.id.main_repor_ll_dialog_this_season: Toast.makeText(Report.this,"这是第六个",Toast.LENGTH_SHORT).show(); break; case R.id.main_repor_ll_dialog_last_season: Toast.makeText(Report.this,"这是第七个",Toast.LENGTH_SHORT).show(); break; case R.id.main_repor_ll_dialog_mine: Toast.makeText(Report.this,"这是第八个",Toast.LENGTH_SHORT).show(); break; default: break; } } }
相关文章推荐
- Android自动化测试之MonkeyRunner录制和回放脚本
- android 照片拍照问题
- Android学习笔记 :Android动画 tween,frame,property
- Android中callback(接口回调)机制
- IOS和Android的区别
- Android IOS WebRTC 音视频开发总结(二九)-- 安卓噪声消除交流
- android实现点赞动画
- android 手势密码
- Android 有关文件路径的常用方法
- android 系统Style,Theme,以及自定义模板(declare-style)
- Android app进入前的闪屏界面代码
- Android自定义View之快速实现下拉刷新, 点击加载更多ListView
- 2015必须推荐的Android框架,猿必读系列!
- 【Android studio】Rendering Problems:classes could not be instantiated 解决方法
- android开发EditText中添加图片
- android适配屏幕
- Android inline hook手记[转载]
- Android 使用Intent在活动之间传递数据
- Android 使用Intent在活动之间传递数据
- 使用Monkeyrunner进行Android自动化的总结