1,findViewByid在android里具体是干什么用的
android 的用户界面一般使用xml文件做的,对应的xml文件在layout包下,如果xml里放了个按钮什么的,在activity中要获取该按钮就用findViewById(R.id.xml文件中对应的id)
2,Android中public、private、protected、friendly的作用域
关键字 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
1.不写时默认为friendly
2.public声明的变量及方法,表明在整个包内包外都可使用。
3.private 声明的变量及方法,只在声明的类内可以使用。private 其实是java中的关键字,
属于java的基础语法,用来限定变量和方法仅供当前类调用,不能被其他类哪怕是其子类调用。
如果想限定当前类和子类调用,用“protected”,如果想所有类都能调用,用“public”
4. protected包外不可使用。包内可以使用。
5. 不使用关键字默认为包内使用。
private 其实是java中的关键字,
属于java的基础语法,用来限定变量和方法仅供当前类调用,不能被其他类哪怕是其子类调用。
如果想限定当前类和子类调用,用“protected”,如果想所有类都能调用,用“public”
3,下面是android SDK中API中的主要java包的功能简介: 在android的应用程序开发中,
通常使用的是java语言,除了需要熟悉java语言的基础知识之外,
还需要了解android提供的扩展的java功能。android SDK中API提供一些扩展的java 类库,
类库分为若干个包,每个包中包含若干个类
android.app :提供高层的程序模型、提供基本的运行环境android.content :包含各种的对设备上的数据进行访问和发布的类
android.database :通过内容提供者浏览和操作数据库
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location :定位和相关服务的类
android.media :提供一些类管理多种音频、视频的媒体接口
android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
android.os :提供了系统服务、消息传输、IPC 机制
android.opengl :提供OpenGL的工具
android.provider :提供类访问Android的内容提供者
android.telephony :提供与拨打电话相关的API交互
android.view :提供基础的用户界面接口框架
android.util :涉及工具性的方法,例如时间日期的操作
android.webkit :默认浏览器操作接口
android.widget :包含各种UI元素(大部分是可见的)在应用程序的屏幕中使用
4,@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法)
example:
在重写父类的onCreate时,在方法前面加上@Override系统可以帮你检查方法的正确性。例如:
public void onCreate(BundlesavedInstanceState){…….}
这种写法是正确的,如果你写成
public void oncreate(BundlesavedInstanceState){…….}
这样编译器会报如下错误——
The method oncreate(Bundle) of type HelloWorld must override or implement a super type method,
以确保你正确重写onCreate方法。(因为oncreate应该为onCreate)
而如果你不加@Override,则编译器将不会检测出错误,而是会认为你新定义了一个方法oncreate。
5,实现OnClickListener接口,这种方式使用量比较多,能解决同一个activity中所有的onclick问题。