总结系列_10(Android开发总结,续...)

  • 先装完jdk,再装elicpse和android,这2个只需解压到相应目录即可,无需安装,因为这2个程序的安装没有经过注册表。最后安装adk,在线安装的话就是最新版本的了,这时andriod-sdk版本可能不够,运行程序时会自动提示,那时更新即可。
  • 在工程中,每一个activity都对应一个xml文件,xml文件主要是控制各控件的位置和属性的.
  • asserts目录下可以存放任何文件,res目录下也可以存放任意文件,且res下的文件会在gen目录下的R.java文件中自动生成一个全局id。
  • res目录下的values目下的strings.xml中的控件也是每个控件都在R.jar中对应一个id号。当然layout下的main.xml文件也是一样的。
  • AndroidManifest.xml是整个应用程序的配置文件。
  • android.jar是该程序应用的所有android类的来源。
  • view是android中所有控件的父类。
  • Activity可以理解为人机交互的界面,也可以理解为一个控件的容器。
  • eclipse中用crtl+c注释选中区域,同时也是用ctrl+c取消选中区域,这里的注释为双斜杆//. 如果用/**/来注释的话,就是用ctrl+shift+/来注释选中区域,用ctrl+shift+\来取消选中区域的注释。
  • 用alt+/是增加单词函数等补全功能的提示。
  • ctrl+shift+o可以自动添加eclipse中检测到需要导入的包文件。
  • setText里面不能采用资源引用,资源引用显示文本应该是在xml中的。
  • 在android的java文件中导入包的时候,千万要注意区分名字的大小写。
  • 一般在java程序中显示文本时,为了达到程序的国际化,最好不要把文本内容在java中指定,而需要在对应的xml文件中指定,然后在java代码中调用其资源即可.因为这样我们只需更改一个xml文件(当然一般是有多个语言版本的xml文件,然后不同版本的软件调用不同的xml即可)。
  • 内部类在java中比较常见,就是类中嵌入类,这种情况在多线程中应用得比较多。在内部类中可以使用外部类的成员变量,函数和对象等。
  • android控件中的menu控件不需要在xml中给出,直接在java源码中重写一些函数即可。
  • intent不仅可以在同一程序中的2个actibity中进行传递数据,还可以啊不同程序中的activity中进行数据传递。
  • java中将字符串转换成整数的语法是用Integer.parseInt(string);
  • java运算中只要2者其中有一个为字符型,则会自动将另一个也转换成字符串 .
  • 加入菜单项需要重写onCreateOptionsMenu()函数,无需在xml布局中添加相应的控件。
  • 相应菜单单击时需要重写onOptionsItemSelected()函数。
  • Activity中有7个与生命周期有关的函数。其中onCreated()是activity第一次被启动时执行的,主要是初始化一些变量,onRestart()是当前activity重新被启动时调用的;绑定一些监听器等;onStart()是activity界面被显示出来的时候执行的;onResume()是当该activity与用户能进行交互时被执行;onPause()是另一个activity被启动,当前的activity就被暂停了,一般在该函数中执行保存当前的数据;onStop()表示另一个activity被启动完成时,当前activity对用户同时又完全不可见时才调用的;onDestroy()是退出当前activity时调用的,当然如果程序中调用finish()或者说android系统当前资源不够用时就会被调用。
  • 当用多个activity在执行时,这时候android系统会自动将这些activity压入栈中并且总是显示最顶的那个activity,这个栈在android叫做task,但是这个栈只支持压入和弹出操作,不支持排序插入等操作。
  • Activity的7个生命周期函数中的onStop()函数被调用时是在其对应的activity被另外的activity完全遮挡的时候,如果只有部分遮挡,则不会被调用。部分遮挡一般是以消息activtiy的形式出现,这个只需在AndroidManifest.xml中将其对于的activity的主题设置theme中更改即可。
  • 这7个周期函数,当系统资源不够时,其中onPause(),onStop(),onDestroy()是有可能被系统kill掉的,但其它4个是不会被kill掉。
  • Java中的计数是从第0个开始的。
  • RadioGroup和RadioButton是android中的单选按钮,而CheckBox则是多选按钮。
  • RadioGroup和CheckBox控件设置监听器都是用的setOnCheckedChangeListener函数,其输入参数是一个函数,且要实现1个内部类。RadioGroup参数用的是RadioGroup.OnCheckedChangeListener(),而CheckBox用的是CompoundButton.OnCheckedChangeListener().
  • Toatst是android中带的一个用于显示提示小窗口消息的控件,其提示的内容过一会儿会自动消失。
  • 设置ListView的监听器是用onListItemClick()函数 
  • 适配器主要是用来放置一些数据。
  • android.widget.SimpleAdapter.SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
  • 由此可以看出函数的第2个参数为一个list,该list里面存放的是一些hashmap,hashmap是一些映射,里面放的是键值对;第3个参数为1个布局文件,即适配器输出的布局;第4个参数为字符数组,数组的内容为参数list中map每列的列名;第5个参数为整型数组,其意思为第4个参数对应显示的值的格式,一般为控件。
  • 在java中定义数组类型并初始化时中间不需要等号,例如
  • new String[]{"user_name", "user_birthday"}。
  • 如果在drawable文件夹中放入图片后,R.java中的关于该图片资源的内容是不会立刻更新的,需要run一次后就马上更新了。
  • 元数据就是描述数据的数据,典型的原数据有例如xml语言。
  • 消息结构中传递简单的整型可以采用它的参数arg1和arg2,或者传递一些小的其它数据,可以用它的object,该object可以是任意的对象。当需要传送比较大的数据是,可以使用消息的setData方法,该方法需要传递一个Bundle的参数。Bundle中存放的是键值对的map,只是它的键值类型和数据类型比较固定而已。
  • 在进行Frame Animation动画操作时,要启动动画,一般都会经过这几个步骤: 
image.setBackgroundResource(R.drawable.anim_list);
AnimationDrawable animation_drawable = (AnimationDrawable)image.getBackground();
animation_drawable.start();

    其中假设image为一个ImageView,R.drawable.anim_list对应的是很多帧图片,并设置好了其显示顺序和持续时间。我们完成上面3行代码的目的是为了启动Frame Animation效果。

    但是如果这几句代码放在当前activity的onCreate()函数中的话,则一般是没有冬态效果的,为什么呢?因为onCreate()函数后一般都有setContentView(R.layout.activity_splash);

    而该函数是加载本activity的界面,这个过程需要一点时间,因此直接还没等界面加载完就去运行动态效果那是不行的。因此我们应该将 animation_drawable.start();这一句移入到窗口

    完成加载的函数中去,即重载函数onWindowFocusChanged(boolean hasFocus)中。

  • ContentProvider中能在不同的程序中共享数据,而关系数据库只能在同一个程序中共享数据。
  • Android的activity界面中,如果我们想在界面显示的时候是全屏显示,即屏幕上方标题啊,电池用量啊,信号强度啊都不显示的话,就需要在该activity的onCreate()方法里面,且在setContentView语句的前面加入下面的代码即可:

         requestWindowFeature(Window.FEATURE_NO_TITLE);

      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREE,WindowManager.LayoutParams.FLAG_FULLSCREEN);

 

 

  

 

 

 

 

 

作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 欢迎转载或分享,但请务必声明文章出处。 (新浪微博:tornadomeet,欢迎交流!)
posted on 2012-08-09 08:58  tornadomeet  阅读(1188)  评论(0编辑  收藏  举报

阿萨德发斯蒂芬