bcoder

11月 012014
 

  ContextMenu相当于windows中的右键弹出菜单,在android中一般要长按某个view才会激活这个弹出菜单,但是有些情况下我们想单击就可以打开这个菜单,以提高用户的使用体验。那么如何才能单击就能打开这个菜单呢,其实很简单,我们在view的onClick事件中调用openContextMenu()即可打开这个弹出菜单了。下面是一个代码片断:

  imgcapture是一个ImageView,此代码执行后,单击imgcapture即可触发onCreateContextMenu事件,然后弹出菜单。另外,必须要调用registerForContextMenu注册这个菜单,否则单击和长按都无法弹出这个菜单。

  如果要弹出比较复杂的菜单的话就用使用Dialog来实现了。

10月 292014
 

  对于获取数据库中的记录数量的方法,其实应该是很简单的问题,之所以发文把此方法写出来,是因为有一些需要地方需要注意,避免其他人再在此问题上浪费时间。

方法一:

  这是一个很普通的方法,通过sql语句获取数量并赋给一个sql别名字段,然后通过这个别名来获取记录的数量,但是需要注意的是必须要有cursor.moveToFirst(),这个函数,因为rawQuery执行完成后返回的Cursor不是定位到第一条记录的,而是定位到第一条记录之前,所以必须要moveToFirst让记录定位一下才能读取数据,同样地获取其他的数据的时候也要在其之前调用此函数。

  如果是读取多条记录的时候我们一般会用

方法二:

  此方法需要注意的是,sql语句select的时候最好不要select *这样会把所有字段的数据都读出来,浪费内存,效率低。

10月 102014
 

  从网上看到的代码,在项目的src目录下新建一个widget的package,然后新建一个VerticalSeekbar的类然后把下面的代码复制到里面。在layout设计界面左侧的组件列表的自定义组件中刷新一下即可看到这个组件了。

 

MotionEvent详解

 分类:Android, Java 阅读 (2,859)  No Responses »
10月 092014
 

MotionEvent用来向界面发送鼠标\手写笔\手指或者轨迹球的事件,一般包括硬件的动作类型及一些坐标轴信息。

getPointerCount()
有几个点同时触发了此事件,用于多点触控。

final float getPressure()
第一个触点的压力值(也有可能是任意某个触点)
final float getPressure(int pointerIndex)
返回指定的pointerIndex触点的当前压力值(使用getPointerId(int)来获取此触点的pointerIndex值)

final float getRawX()
Returns the original raw X coordinate of this event.

final float getRawY()
Returns the original raw Y coordinate of this event.

final float getSize(int pointerIndex)
得到触点触摸屏幕的面积值,此值的意义是个相对值,具体计算方法不清楚。(使用getPointerId(int)来获取此触点的pointerIndex值).
final float getSize()
getSize(int) for the first pointer index (may be an arbitrary pointer identifier).

getDownTime()
返回当屏幕刚被按下时的时间(毫秒),按下后移动此时间不变。

final long getEventTime()
返回MotionEvent所在的事件被激发的时间(毫秒),如在OnTouchListener(MotionEvent event)中,每个OnTouch被激发的时间。

8月 082014
 

在子窗口中重载CreateParams函数,并将WndParent设置为0即可,具体代码如下:

当我们把Params.WndParent设置为0时,Delphi在调用CreateWindowEx创建该窗口时,会将hWndParent 参数设置为相同的值(此处为0),为0则意味着要创建的窗口的所有者为桌面。此值不能在运行期通过Windows ApI改变,可能是因为窗口的拥有者不能在运行期改变的原因。

一些有用的链接

CreateWindowEx function

MFC子窗口和父窗口(SetParent,SetOwner)

7月 242014
 

  很久没用Eclipse了,今天打开的时候,突然报Android开发插件需要更新。打开插件管理页面,更新Android插件,又提示和旧版本有冲突,心想只能卸载了重新安装了。找了半天没找到在哪下载,把Eclipse目录下的plugins目录下和android相关的都删除了,还是不能更新,后来又把features目录下和android中的jar包都删除了,还是不行。经过在网上一番搜索,终于找到在哪卸载了,对Eclipse的友好性真是……

  下面说一下详细的步骤吧

  1. 打开菜单help->Install New Software…

  2. 点击窗口中正文选项里的蓝色already installed标签

  3. 选中要卸载的插件,然后点击Uninstall按钮(里面除了Eclipse IDE for Java EE Development外都是Android for Eclipse的插件)

  4. 这时会弹出一个确认窗口,点击Finish按钮,Eclipse就开始删除插件了,删除完成后会弹出一个提示窗口提示是否要重新启动Eclipse

7月 162014
 

在TRichEdit的Scrollbars属性为ssNone时,RichEdit中的内容超出边框大小时,翻动鼠标上下滚轮时,内容是不会自动滚动的。需要写代码实现此功能,主要是在RichEdit1MouseWheelUp和RichEdit1MouseWheelDown中发送消息实现,具体代码如下:

 

7月 152014
 

union all对于重复的数据也会提取出来

union 不会提取重复的数据

一个sql语句可以有多个union或者union all连接

如果要对连接表中的字段排序,把union的表当成一个子表来操作,如下:

 

7月 122014
 

在PAYPAL帐户中添加自己的香港招行“香港一卡通”,需要填写以下信息:

(1)Name on account(帐户名称):收款人名字,英文、中文?

(2) Bank Name(银行名称):填写“CHINA MERCHANTS BANK HONG KONG BRANCH”;

(3) Account Type(帐户类型):选择“Checking(支票收款)”;

(4) Bank Code(银行代码):238,又叫CHATS CODE;

(5) Branch Location(分行地址):21F,12 HARCOURT ROAD CENTRAL

(6) Branch Code(分行代码):填写“860”这三位固定代码(即卡号中间的那三位);

(7) Account Number(帐户号码):填写你自己卡号的最后7位数字(即860之后的7位);

(7) Re-Enter Account Number(重复帐户号码):再次输入上面输入的7位收款帐号。

附截图:

paypal添加招商银行香港一卡通

其他信息:

1、招商銀行香港分行SWIFT CODE: CMBCHKHH

2、招商银行卡BIN号

信用卡:431988、356889、439225、439226、439227、518710、518718、622575、622576、622578、479229、479228、552534、552587、622581、622582、622577、521302、628362、356890、370285、370287、370289
借记卡:8位卡、955550、622580、622588、622609、621286、468203、512425、410062、524011、621483、621485、621486、621299