Android Dev Doc

Android 开发 多使用内部类 使用方便且效率高

UI方面的知识

一、在编写layout的xml文件时,一定要仔细!如果在报错的时候,如何解决?
解决:将xml仔细检查并保存后再运行。

二、在运行程序时,还未运行onCreate()方法之前就报错(MyAndroid(Project))!
原因:在用eclipse 新建的项目的AndroidManifest.xml 文件中的application节点中android:lable写了。去掉后就无错。(待验证!)

三、onCreateContextMenu -> 创建长按菜单键 显示的菜单!处理菜单选择事件方法-> onContextItemSelected

四、在对数据库操作时,一定要记住open..

五、Fragments 类似于Activity 生命周期有点类似。。。一个Activity中可以有很多个Fragments,一个Fragments可以被多个Activity使用,要实现Fragments也必须去跟Activity一样去集成父类。

六、两种方式将Layout中的XML转换为View

  1. LayoutInflater inflater = (强转)getSystemService(Context.LAYOUT_INFLATER_SERVICE) inflater.inflater(layoutId,null);
  2. LayoutInflater inflater = LayoutInflater.from(this);

final View textEntryView = inflater.inflate(R.layout.alert_dialog_text_entry, null);

七、Dialog的机制 :当Activity中调用showDialog(int id)时会去回调onCreateDialog() 回调执行完毕后执行onPrepareDialog()。

八、利用线程来实现ProgressBar

  1. 新建一个匿名类实现Runable接口,run方法里面来for循环progressBar的max value
  2. 在for内利用android.os.Handler类的实例的post方法来对progressBar实例的操作(其中post的参数又是一个Runable的实现类-利用匿名类来实现run方法,在方法内对progressBar的实例操作)。->注意:progressbar 的max越大越能看出效果。

九、得到NotificationManager 以及Notification的使用

  1. 在Activity中 nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  2. new Notification(显示图片的ID,显示的文本,Notification显示的时间)
  3. Notification的使用步骤:
    1. 所有的Notification都是由NotificationManager来管理的,因此必须得到NotificationManager的实例
    2. 构造一个Notification(注意setLatestEventInfo这个方法是用来:1:当展开Notification时如何呈现Notification 2:当用户单击时如何处理Notification)
    3. 利用NotificationManager的实例来启动Notification

十、D

数据存储的操作

一、数据存储的3中方式

  1. SharedPreferences 方式 会以xml存在data/data/XXX.xml中
  2. 文件存储 (要在程序当中读取文件那么文件应该放在res/raw用以下方式获得:Resources res = getResources(); res.openRawResource(R.raw.xxx) 即可)
  3. SQLite存储方式

二、利用ContentValues 来存储到数据库

  1. ContentValues cv = new ContentValues(); cv.putXXX(Key,Value)
  2. Xx.insert(TableName,cv…..)

三、利用ContentProvider实现跨程序访问(由于Android系统中的数据都是私有的)

  1. 新建一个日记类 当中含有内部类实现了BaseColumns接口(该内部类中包含了很多字段URI 等等),该日记类包含了授权字段,授权的字段必须跟以下类注册的provider要保持一致
  2. 新建一个子类去继承ContentProvider 重写它的onCreate(),query,insert,update,getType 等方法,并且在AndroidManifest.xml文件中进行注册。

四、使用WebServices

  1. 在Manifest.xml文件中赋予权限 Android.permission.INTERNET
  2. 以POST的方式发送请求
  3. 以HttpRespone 接受返回值。

五、在创建数据表的时候,必须包含_id字段。如果未包含,必须升级数据库或者删除表重新建。OnUpgrade()方法升级。

程序开发步骤

一、实现UI

二、数据存储和操作

三、实现多页面跳转

四、增加Service

五、完善细节

六、应用测试

finishActivity(RESULT_OK)不能结束当前的activity,只有调用finish()才能。

为什么我不调用startManagingCursor()方法也可以取出数据。。

当查询的Cursor只有一个结果的时候,需要调用moveToFrist()方法,要不会抛出数组下标异常android.database.CursorIndexOutOfBoundsException: Index -1

实现GoogleMap

一、需要com.google.map.(jar 包)

二、在CMD下利用Java的keytool.exe 生成API KEY

a) keytool –list –alias androiddebugkey –keystore “debug.keystore的路径 如:C:\Documents and Settings\Administrator\.android”

b) 提示输入密码,输入:Android

c) Copy 产生的key

三、在Google网站上申请API KEY

a) 进入:http://code.google.com/intl/zh-CN/android/maps-api-signup.html

b) 输入上步得到的MD5认证KEY

c) 点击Generate API Key

d) 得到申请到的API Key

四、使用getSharedPreferences方法的注意事项

a) 此方法是Context的一个方法,如果需要得到文件必须context要在manifest.xml文件中进行注册了的才会得到对象。要不会抛null异常

五、使用BaseAdapter的注意事项

a) 在使用adapter时,方法的getCount必须返回size(否则显示不出)

b) getView()方法在首次加载的时候参数converView是null

c) 调用notifyDataSetChanged()方法来针对改变了list来更新view

六、使用AIDL (Android Interface Description Language) 进行不同进程之间的通信

七、AlertDialog的使用

a) 在设置多个Button的时候不能使用同样的方法setButton();

b) 必须使用setButton2要不然会覆盖掉前面的。

八、D

Android技术点(面试)

一、Android 线程之间通信方式有几种:

a) Handler (如果在子线程当中实例化Handler前必须创建消息队列Looper.prepare(),实例化完毕后调用Looper.loop()启动消息队列,不用的时候quite()队列)

b)

二、如果有多个Activity 如何来全部结束(4中方式)

a) Process.killProcess(Process.myPid());System.exit(0);

b) ActivityManager am = (ActivityManager)getSystemService (ACTIVITY_SERVICE); am.restartPackage(getPackageName()); 必须在Manifest.xml申明权限:android.permission.RESTART_PACKAGES

c) 我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,
这里我们在A窗口打开B窗口时在Intent中直接加入标志
Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。
在A窗口中使用下面的代码调用B窗口Intent intent = new Intent();  
intent.setClass(Android123.this,CWJ.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//注意本行的FLAG设置startActivity(intent);接下来在B窗口中需要退出时直接使用finish
方法即可全部退出。

d) 利用单例模式来管理全部的activity.. 点击查看

三、Android的MVC 体现到哪里

a) M:res/values下生成,也可以通过代码获得 (V 通过Adapter 与M互相连接)

b) V: Layout /下的xml生成也可同过代码生成。

c) C:Activity

四、Android中存储数据的几种方式

a) 使用SharePreferences 存储(使用SharedPreferences是有些限制的:只能在同一个包内使用,不能在不同的包之间使用。)

b) 文件存储

c) SQLite

d) 使用ContentProvider

e) 网络存储

五、如何解决Android中sdcard存储文件的限制

a) 加入两个权限:android.permission.WRITE_EXTERNAL_STORAGE(可写权限)

b) 创建,删除权限:android.permission.MOUNT_UNMOUNT_FILESYSTEMS

六、Android 请求服务端的几种方式

a) 第三方插件ksoap

b) HttpURLConnection

七、Android 中有几种Adapter

八、SimpleAdapter,SimpleCursorAdapter,ArrayAdapter

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. 箭头函数的基础使用
  3. NPM 和webpack 的基础使用
  4. Python list sort方法的具体使用
  5. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  6. python list.sort()根据多个关键字排序的方法实现
  7. Android布局优化
  8. Android系统权限和root权限
  9. Android中使用ormlite实现持久化--HelloOrmLite

随机推荐

  1. php-fpm7.0 慢查询设置及说明
  2. PHP 生命周期
  3. PHP 模板引擎
  4. PHP中接口与抽象类的异同点有哪些
  5. PHP mysqli操作数据库
  6. php连接服务器进行服务器命令操作
  7. 关于PHP中依赖注入的详细介绍
  8. php中 continue break exit return 的区
  9. PHP 核心特性之命名空间
  10. php 安装zip模块