Toast我们通常用来提示文字,但是也可以用来显示整个View来显示,如下:
Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.FILL, 0, 0); toast.setView(toastView); toast.show();
自定义View的时候典型的就是画笔初始化,包括Paint创建和颜色、粗细等属性设置什么的一般只需要在第一次创建初始化就好,通常就是在构造器中初始化,不要在onDraw中去构造,因为很多情况下onDraw会被多次执行,比如调用了invalidate方法。
有时候当Adapter或者Cursor的数据有变化时我们需要作一些操作该怎么办?我们可以使用DataSetObserver观察者模式来实现监听。继承DataSetObserver此类重写onChanged()和onInvalidated()方法,然后用mAdapter来registerDataSetObserver(···)即可。当然,也只有当调用了mAdapter.notifyDataSetChanged();后我们的观察者才知道数据变化了,才会执行onCHanged()。
(1)通常情况下我们在编译的时候直接用javah即可:javah com.geo.bitmap.BitmapHelper
(2)有时候会出现Android SDK的系统类找不到的情况:找不到类android.graphics.Bitmap。这时候我们就需要这样的命令:javah -d jni -classpath E:\adt\sdk\platforms\android-17\android.jar; com.geo.bitmap.BitmapHelper,一定要注意在android.jar后面除了有一个分后还有一个空格!
今天测试同事提出的bug说我们的应用在登陆成功后按home键然后使用其它app,过一会再进入我们的app就发现又需要登录!初步怀疑是我们的应用被系统清理回收了,由于内存不足和耗电量高,于是就先让客户在设置里将应用设置为受保护的后台应用,也就是不让系统清理我哦们的应用,。关于内存的检测看:http://stackoverflow.com/questions/2298208/how-do-i-discover-memory-usage-of-my-application-in-android/2299813#2299813;
今天在数据库insert()操作的时候老是返回-1值,表明一直插入失败,后来调查发现实因为在创建表的时候有个语句是这样写的:nid varchar primary key。其中nid是我表的一个字段,Sqlite数据库会将integer primary key的语句解析为自动增长,由于此nid是varchar且我在插入的时候还给nid赋值了,所以出错,可以将varchar改为integer类型,再插入时让它自动增长。这是语句是失误了!。
我们可以在Service的onCreate()中调用this.startForeground(100, notification);然后在onDestory()中调用stopForeground(boolnean)就可以让我们的服务在前台运行了。
Point point = GeometryEngine.getLabelPointForPolygon((Polygon) graphic.getGeometry(), mMapView.getSpatialReference());