Android常见基础小问题

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问题。


猜你喜欢

转载自blog.csdn.net/cheng__lu/article/details/79392785