Android面试收集录 对话框、信息提示和菜单
1.如何使用AlertDialog显示一个列表?
- 使用AlertDialog.Builder.setItems方法。
- 在setItems中定义DialogInterface.OnClickListener监听器
2.如何使用AlertDialog实现单选按钮?
- 定义一个字符串数组,用来填充选项
- new一个AlertDialog.Builder对象
- setSingleChoiceItems(数组,-1,new OnClickListener{})
3.如何使用AlertDialog实现多选?
- 定义一个字符串数组,用来填充选项
- new一个AlertDialog.Builder对象
- setMultiChoiceItems(数组,new boolean[]{默认},new DialogInterface.OnMultiChoiceClickListener(){...})
4.如何修改对话框的位置?
- 使用Window对象获取对话框在窗口位置的对象,Window window=alertDialog.getWindow();
- 然后使用window.setGravity(Gravity.TOP|Gravity.LEFT)设置位置
5.如何改变对话框的透明度?
- 使用Window对象获取对话框窗口位置的对象,Window window=alertDialog.getWindow();
- 使用window.getAttributes获取WindowManager.LayoutParams布局参数
- 然后将布局参数中的alpha设置为浮点数即可
- 最后调用窗口对象window.setAttributes重新设置改写的属性即可
6.请写出显示一个Toast信息框的Java代码?
- Toast textToast=Toast.makeText(this,"我的信息",Toast.LENGTH_LONG);
- textToast.show();
7.如何自定义Toast显示的时长?
- 需要用反射机制来实现
- 调用Toast.TN.show来显示,调用Toast.TN.hide来关闭
- 所以需要先从Toast对象中获得mTN变量(反射实现)
- 然后从TN对象总获得show方法(反射实现)
8.请描述一下在状态栏上显示一个NotificationManager对象的步骤?
- 先获取NotificationManager对象,getSystemService(NOTIFICATION_SERVICE)即可得到该对象
- 直接创建一个Notification,new Notification(R.drawable.icon,"消息...",System.currentTimeMillis());
- 建立一个关联应用程序的类,PendingIntent对象,PendingIntent.getActivity(this,0,getIntent(),0);保证程序关闭,对象不会释放
- 设置通知详细信息,notification.setLatestEventInfo(this,"天气转凉,注意添加衣物",pendingIntent对象);
- 展示通知,使用通知管理实例.notify(R.drawable.icon,notification)
9.如何做才能在单击Notification后弹出一个Activity?
- 使用PendingIntent.getActivity方法获取一个PendingIntent对象,这个对象创建了一个关联应用程序的类。即时APP已经关闭,对象依旧存在。
- 调用方式:notification.setLatestEventInfo(this,"消息标题","消息内容",上面pendingIntent对象)。
- 如何发送广播:PendingIntent.getBroadcast(this,1,intent,PendingIntent.FLAG_UPDATE_CURRENT);
- 如何开始服务:PendingIntent.getService(this,1,intent,PendingIntent.FLAG_UPDATE_CURRENT);
10.如何从状态栏清除Notification?
- 使用NotificationManager.cancel方法
11.如何自定义Notification?
- RemoteViews类来配合,常用于通知和桌面小组件
- 使用方式:RemoteViews remoteViews=new RemoteViews(getPackageName(),R.layout.布局名);
- 通知怎么关联:notification.contentView=remoteViews;
12.请描述一下如何为一个Activity添加选项菜单?
- 实现Activity.onCreateOptionsMenu方法
- 添加菜单即通过menu.add方式添加
13.如何自定义选项菜单?
- 自定义选项菜单用PopupWindow对象来模拟选项菜单。
- 通过重写onKeyDown来显示和关闭自定义选项菜单。
Android面试收集录 对话框、信息提示和菜单的更多相关文章
- Android面试收集录7 AsyncTask详解
1.Android中的线程 在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,即线程不可能无限制地产生, 并且 **线程的创建和销毁都会有相应的开销.**当系统中存在大量的线 ...
- Android面试收集录 Android组件
1.请说出Android SDK支持哪些方式显示富文本信息? 使用TextView组件可以显示富文本信息,如果要实现图文混排,需实现ImageGetter接口 使用WebView组件显示HTML页面 ...
- Android面试收集录1 Activity+Service
1.Activity的生命周期 1.1.首先查看一下Activity生命周期经典图片. 在正常情况下,一个Activity从启动到结束会以如下顺序经历整个生命周期: onCreate()->on ...
- Android面试收集录 蓝牙与WiFi
1.打开手机中的蓝牙功能有哪些方法? 法1:使用Intent ==>new Intent(BluetoothAdaper.ACTION_REQUEST_ENABLE); startActivi ...
- Android面试收集录 网络与加密
1.创建Socket对象需要至少指定哪些信息? IP(或域名)和端口号 Socket socket=new Socket("www.baidu.com",80); 2.如何使用So ...
- Android面试收集录18 Android Context详解
Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言 ...
- Android面试收集录17 Android进程优先级
在安卓系统中:当系统内存不足时,Android系统将根据进程的优先级选择杀死一些不太重要的进程,优先级低的先杀死.进程优先级从高到低如下. 前台进程 处于正在与用户交互的activity 与前台act ...
- Android面试收集录15 Android Bitmap压缩策略
一.为什么Bitmap需要高效加载? 现在的高清大图,动辄就要好几M,而Android对单个应用所施加的内存限制,只有小几十M,如16M,这导致加载Bitmap的时候很容易出现内存溢出.如下异常信息, ...
- Android面试收集录13 Android虚拟机及编译过程
一.什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的 ...
随机推荐
- Django:Django中的ORM
一.Django项目使用MySQL数据库 1,在Django项目的settings.py,文件中,配置数据库连接信息: DATABASES = { "default": { &qu ...
- maven的.m2文件夹
安装完maven是没有.m2文件夹的. Maven缺省的本地仓库路径为${user.home}/.m2/repository 在linux中以.开头的文件夹都是隐藏的.当使用maven命令的时候,ma ...
- html下载文件和上传文件(图片)(java后台(HttpServlet))打开保存路径和选择文件录取+(乱码UTF-8)+包
下载文件: //通过路径得到一个输入流 String path = "获取需要下载的文件路径"; //path.lastIndexOf(".")+1可以获取文件 ...
- 写在归程路上——2018ROBOCUP机器人世界杯中国赛
写入自强队名单一年,认识Daniel十个月,第二次代表上海大学参加国赛,这一次是在浙江绍兴.坐在返沪的车上,心里担心着作业和明天的早课,写这篇博文来打发打发时间. ROBOCUP两个半比赛日,项目主要 ...
- 【luogu P3410 拍照】 题解
题目链接:https://www.luogu.org/problemnew/show/P3410 这个题就是求一个最大权闭合图 在一个图中,一些点构成一个集合,且集合中的出边指向的终点也在这个集合中, ...
- 【luogu P1306 斐波那契公约数】 题解
题目链接:https://www.luogu.org/problemnew/show/P1306#sub gcd(f[m],f[n]) = f[gcd(m,n)] #include <iostr ...
- Android学习笔记_73_授权过程
.需要申请App Key和App Secret.不同的开发平台有不同的接入方式,可以参考文档,然后将这两个值放进去. .通过OAuth类实现认证,它会自动跳转到认证界面,进行授权,成功之后需要处理回调 ...
- o'Reill的SVG精髓(第二版)学习笔记——第十二章
第十二章 SVG动画 12.1动画基础 SVG的动画特性基于万维网联盟的“同步多媒体集成语言”(SMIL)规范(http://www.w3.org/TR/SMIL3). 在这个动画系统中,我们可以指定 ...
- ajax请求相关问题
Ajax中async:false/true的作用: async. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的succ ...
- WebGL学习笔记(4)
本篇笔记加强了上篇笔记示例代码的程序,实现了使用nodejs-websocket来广播每个玩家的坐标数据并在同一个世界模型中进行多人在线交互. websocket服务端: 安装nodejs与npm,创 ...