Android Dev Doc
Android 开发 多使用内部类 使用方便且效率高
一、在编写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
final View textEntryView = inflater.inflate(R.layout.alert_dialog_text_entry, null);
七、Dialog的机制 :当Activity中调用showDialog(int id)时会去回调onCreateDialog() 回调执行完毕后执行onPrepareDialog()。
八、利用线程来实现ProgressBar
九、得到NotificationManager 以及Notification的使用
十、D
一、数据存储的3中方式
二、利用ContentValues 来存储到数据库
三、利用ContentProvider实现跨程序访问(由于Android系统中的数据都是私有的)
四、使用WebServices
五、在创建数据表的时候,必须包含_id字段。如果未包含,必须升级数据库或者删除表重新建。OnUpgrade()方法升级。
一、实现UI
二、数据存储和操作
三、实现多页面跳转
四、增加Service
五、完善细节
六、应用测试
finishActivity(RESULT_OK)不能结束当前的activity,只有调用finish()才能。
为什么我不调用startManagingCursor()方法也可以取出数据。。
当查询的Cursor只有一个结果的时候,需要调用moveToFrist()方法,要不会抛出数组下标异常android.database.CursorIndexOutOfBoundsException: Index -1
一、需要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 线程之间通信方式有几种:
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