这个setint.exe1.1设置的是哪一个通配符?我怎么觉得是一句废语句

实现通用的PreparedStatement更新记录的方法
&&&&&&& 在JadePool中,除了常规的更新方法之外,还有以下更新记录的方法,
& & & & && 1、public int update(String tableName, Map&String, Object& mapRecord, String where) throws SQLException//根据条件更新单条记录
& & & & && 2、public int update(String tableName, Map&String, Object& mapRecord) throws SQLException//更新单条记录
&&&&&&&&&& 3、public int update(String tableName, List&Map& listRecord) throws SQLException& //更新多条记录,主键值不变
&&&&&&&&&& 4、public int update(String tableName, List&Map& listRecord, String where) throws SQLException&& //根据where条件,更新多条记录,主键值不变
&&&&&&& 它们都调用底层最核心的方法
&& & & & && private int _preparedStatementUpdate(String tableName, List&Map& listRecord, boolean isUpdateKey, String whereStr) throws SQLException
&&&&&&& 将使用参数Map变量或者是List&Map&变量更新数据库表中的记录,待
更新的记录的条件是主键值等于mapRecord.get(主键名),在这一组操作中,主键值不变。
&&&&&&& 底层核心方法_preparedStatementUpdate同__preparedStatementInsert的共同点有以下几点:
& & & & && 1、插入语句或更新语句只需要合成一次;
& & & & && 2、都支持相同的SQL数据类型及其对应的Java类;
& & & & && 3、都需要实现相同的通配符对应的赋值方法(参见“SQL数据类型与Java类的对应关系”一文);
& & & & && 4、都整合相同的异常,统一抛出SQLException异常。
&&&&&&& 底层核心方法_preparedStatementUpdate同__preparedStatementInsert的区别在于:
&&&&&&&&&& 1、合成PreparedStatement的更新语句;
& & & & && 2、更新数据时,保持主键值不变。
合成PreparedStatement的更新语句的算法是:
Map&String, Object& _m = new LinkedHashMap(listRecord.get(0));//获取一条记录,作为过滤、分组依据
String[] tableFields = db.getFields(tableName);//表中的字段
String[] tableKeys = db.getKeys(tableName);//表中的主键
Object[] recordFields = (_m.keySet()).toArray(); //获取记录里的字段名的集合
for (int i = 0; i & recordFields. i++) {
if (!tool.isInFields(tableFields, recordFields[i].toString())) {
_m.remove(recordFields[i].toString());//移除无效字段, 查看记录中的字段在表中是否存在,如果不存在,则移除到
Object[] k0 = (_m.keySet()).toArray(); //过滤后的有效字段
Map&String, Object& key_m = new LinkedHashMap();//记录里的主键
if (!isUpdateKey) {
for (int i = 0; i & k0. i++) {
if (tool.isInFields(tableKeys, k0[i].toString())) {//记录中是否有主键
key_m.put(k0[i].toString(), _m.remove(k0[i].toString()));//将记录中的主键移到key_m中;保证不对主键更新
Object[] fields = (_m.keySet()).toArray(); //记录中不包含主键的有效字段;再次过滤掉主键字段的结果
Object[] keys = (key_m.keySet()).toArray(); //记录中包含的主键
if (isUpdateKey) {
if (keys.length == 0 || keys.length != tableKeys.length) {
String[] kss = new String[fields.length]; //保存&键名=?&
for (int i = 0; i & fields. i++) {
kss[i] = fields[i].toString() + &=?&;
String n_v = tool.arryToString(kss, &,&);
String preparedStatementUpdate = &update & + tableName + & set & + n_v + & &;
//System.out.println(preparedStatementUpdate);
&&&&&&& 完整的_preparedStatementUpdate代码
* 使用PreparedStatement更新多条记录 本方法是根据JDBC API类名的判断来存贮数据&br/&
* 为了方便表单数据的录入,本方法提供了用字符串来表达Integer|Long|Short|Float|Double|Bigdecimal|java.sql.Date等常规类型的支持,&br/&
* 但请注意:用字符串表达Date时,目前java.sql.Date仅支持将&yyyy-mm-dd&格式转换成Date对象;&br/&
* 对于其它类型,用户必须建立相应类型的对象; 本方法提供了对上传文件的支持; 零长度字符串将保存为null。&br/&
* 详细的数据类型,可参阅《Java开发者年鉴》p700 PreparedStatement的setXXX方法&br/&
* 完成更新的步骤: 1、过滤记录中无效字段,得有效字段Object[] fields&br/&
* 2、根据isUpdateKey对有效字段继续分组:!true时,再得主键字段组Object[] keys和非主键字段组Object[]
* fields&br/& 3、自动生成PreparedStatement所需的更新操作&br/& 4、迭代记录for (Map record :
* listRecord) {}&br/& 5、执行PreparedStatement的executeUpdate(updateSQL);&br/&
* @param tableName 是一个表名
* @param listRecord 是具有相同结构的一组记录
* @param isUpdateKey 是否更新主键
* @param whereStr
* 是操作条件,插入时不起作用,更新时,若where==null||&&.equals(where),则自动根据记录自身主键字段的键值对组合where条件语句
* 是从LinkedHashMap参数中获取的值
* @throws SQLException
private int _preparedStatementUpdate(String tableName, List&Map& listRecord, boolean isUpdateKey, String whereStr) throws SQLException {
int num = 0;
if (listRecord == null || listRecord.isEmpty()) {
Map&String, Object& _m = new LinkedHashMap(listRecord.get(0));//获取一条记录,作为过滤、分组依据
String[] tableFields = db.getFields(tableName);//表中的字段
String[] tableKeys = db.getKeys(tableName);//表中的主键
Object[] recordFields = (_m.keySet()).toArray(); //获取记录里的字段名的集合
for (int i = 0; i & recordFields. i++) {
if (!tool.isInFields(tableFields, recordFields[i].toString())) {
_m.remove(recordFields[i].toString());//移除无效字段, 查看记录中的字段在表中是否存在,如果不存在,则移除到
Object[] k0 = (_m.keySet()).toArray(); //过滤后的有效字段
Map&String, Object& key_m = new LinkedHashMap();//记录里的主键
if (!isUpdateKey) {
for (int i = 0; i & k0. i++) {
if (tool.isInFields(tableKeys, k0[i].toString())) {//记录中是否有主键
key_m.put(k0[i].toString(), _m.remove(k0[i].toString()));//将记录中的主键移到key_m中;保证不对主键更新
Object[] fields = (_m.keySet()).toArray(); //记录中不包含主键的有效字段;再次过滤掉主键字段的结果
Object[] keys = (key_m.keySet()).toArray(); //记录中包含的主键
if (isUpdateKey) {
if (keys.length == 0 || keys.length != tableKeys.length) {
String[] kss = new String[fields.length]; //保存&键名=?&
for (int i = 0; i & fields. i++) {
kss[i] = fields[i].toString() + &=?&;
String n_v = tool.arryToString(kss, &,&);
String preparedStatementUpdate = &update & + tableName + & set & + n_v + & &;
//System.out.println(preparedStatementUpdate);
PreparedStatement pstmt =
if (whereStr != null) {
pstmt = con.prepareStatement(preparedStatementUpdate + whereStr);//如果whereStr!=null,从这里执行PrepareStatement更新
for (Map record : listRecord) {
if (whereStr == null) {
String _w = &&;
if (keys.length & 0) {
Field f = db.getField(tableName, keys[0].toString());
Object _o = record.get(keys[0].toString());
String _s = &&;
if (f.getTypeClassName().equals(&java.lang.String&)) {
_s = keys[0].toString() + & like '& + _o.toString() + &'&;
_s = keys[0].toString() + & = & + _o.toString();
if (keys.length & 1) {
for (int i = 1; i & keys. i++) {
f = db.getField(tableName, keys[i].toString());
_o = record.get(keys[i].toString());
if (f.getTypeClassName().equals(&java.lang.String&)) {
_s = _s + & and & + keys[i].toString() + & like '& + _o.toString() + &'&;
_s = _s + & and & + keys[i].toString() + & = & + _o.toString();
_w = & where & + _s;
//System.out.println(preparedStatementUpdate + _w);//批量更新
pstmt = con.prepareStatement(preparedStatementUpdate + _w);//如果whereStr==null,从这里执行PrepareStatement更新//条件不同,只能逐条变更插入语句
//为了提高运算效率,规定判断条件优先顺序:常用标准条件精确匹配、标准条件精确匹配、非标准条件精确匹配、非标准条件概略匹配、非标准条件概略小写匹配
for (int i = 0; i & fields. i++) {
Field f = db.getField(tableName, fields[i].toString());
String className = f.getTypeClassName();
int index = f.getSqlType();
Object v = record.get(fields[i].toString());
if (v == null) {
pstmt.setNull(i + 1, index);//
} else if (v != null) {
String _c = ((Class) v.getClass()).getName(); //增加对表单数据的支持,在表单中获取的数据均为String型,固应对其进行转换.
if ((_c.equals(&java.lang.String&)) && (&&.equals(((String) v).trim()))) {
pstmt.setNull(i + 1, index);//
if (className.equals(&java.lang.String&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setString(i + 1, (String) v);
if (className.equals(&java.lang.Integer&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setInt(i + 1, Integer.parseInt((String) v));
if (_c.equals(&java.lang.Integer&)) {
pstmt.setInt(i + 1, ((Integer) v).intValue());
Integer n = new Integer(v.toString());
pstmt.setInt(i + 1, n);
if (className.equals(&java.lang.Long&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setLong(i + 1, Long.parseLong((String) v));
if (_c.equals(&java.lang.Long&)) {
pstmt.setLong(i + 1, ((Long) v).longValue());
Long l = new Long(v.toString());
pstmt.setLong(i + 1, l);
if (className.equals(&java.lang.Short&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setShort(i + 1, Short.parseShort((String) v));
pstmt.setShort(i + 1, ((Short) v).shortValue());
if (className.equals(&java.lang.Float&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setFloat(i + 1, Float.parseFloat((String) v));
pstmt.setFloat(i + 1, ((Float) v).floatValue());
if (className.equals(&java.lang.Double&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setDouble(i + 1, Double.parseDouble((String) v));
pstmt.setDouble(i + 1, ((Double) v).doubleValue());
if (className.equals(&java.lang.Boolean&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setBoolean(i + 1, (Boolean.valueOf((String) v)).booleanValue());
pstmt.setBoolean(i + 1, ((Boolean) v).booleanValue());
if (className.equals(&java.sql.Timestamp&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
String _s = ((String) v).trim();
if (tool.matches(RegexType.chinaDate, _s)) {//如:
Time t = new Time(0l);
_s = _s + & & + t.toString();
pstmt.setTimestamp(i + 1, java.sql.Timestamp.valueOf(_s));
pstmt.setTimestamp(i + 1, java.sql.Timestamp.valueOf((String) v));
} else if (className.equals(&java.sql.Date&)) {
java.sql.Date _v = (java.sql.Date)
pstmt.setTimestamp(i + 1, new Timestamp(_v.getTime()));
} else if (className.equals(&java.util.Date&)) {
java.util.Date _v = (java.util.Date)
pstmt.setTimestamp(i + 1, new Timestamp(_v.getTime()));
} else if (className.equals(&java.sql.Time&)) {
java.sql.Time _v = (java.sql.Time)
pstmt.setTimestamp(i + 1, new Timestamp(_v.getTime()));
pstmt.setTimestamp(i + 1, new Timestamp(((java.util.Date) v).getTime()));//能支持更多的应用
//pstmt.setTimestamp(i + 1,
(java.sql.Timestamp) v);//使用jsf日期转换后获得的结果可能不完整,这时会出现转换异常
if (className.equals(&java.sql.Date&) || className.equals(&java.util.Date&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setDate(i + 1, java.sql.Date.valueOf((String) v));
} else if (className.equals(&java.util.Date&)) {
java.util.Date _v = (java.util.Date)
pstmt.setDate(i + 1, new java.sql.Date(_v.getTime()));
pstmt.setDate(i + 1, (java.sql.Date) v);
if (className.equals(&java.sql.Time&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setTime(i + 1, java.sql.Time.valueOf((String) v));
pstmt.setTime(i + 1, (java.sql.Time) v);
if (className.equals(&[B&) || className.equals(&byte[]&)) {
//SQL Server 的image、timestamp、binary类型是byte[],MySQL 的blob系列是java.lang.Object,Sybase的image是[B
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setBytes(i + 1, ((String) v).getBytes());
pstmt.setBytes(i + 1, (byte[]) v);
if (className.equals(&java.sql.Blob&)) {
//SQL Server 的image、timestamp、binary类型是byte[],MySQL 的blob系列是java.lang.Object,Sybase的image是[B
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setBytes(i + 1, ((String) v).getBytes());
pstmt.setBlob(i + 1, (java.sql.Blob) v);
if (className.equals(&java.lang.Object&)) {
//SQL Server 的image、timestamp、binary类型是byte[],MySQL 的blob系列是java.lang.Object,Sybase的image是[B
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setBytes(i + 1, ((String) v).getBytes());
pstmt.setObject(i + 1, v);
if (className.equals(&java.lang.Byte&)) {
//MySQL的tinyint是java.lang.Byte
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setByte(i + 1, java.lang.Byte.parseByte((String) v));
pstmt.setByte(i + 1, java.lang.Byte.parseByte(v.toString()));
if (className.equals(&java.math.BigDecimal&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setBigDecimal(i + 1, new BigDecimal((String) v));
pstmt.setBigDecimal(i + 1, (BigDecimal) v);
//以下部分将根据具体的数据库需要而定,有待验证
if (className.equals(&java.sql.Clob&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setString(i + 1, (String) v);//给clob类型的字段赋予字符串型
pstmt.setClob(i + 1, (java.sql.Clob) v);
//以下部分将根据具体的数据库需要而定,有待验证
if (className.equals(&java.sql.Array&)) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setArray(i + 1, (java.sql.Array) v);
//特殊类型,非常用,置后
if (className.equals(&com.sybase.jdbc2.tds.SybTimestamp&) || className.toLowerCase().indexOf(&timestamp&) & 0) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setTimestamp(i + 1, java.sql.Timestamp.valueOf((String) v));
pstmt.setTimestamp(i + 1, (java.sql.Timestamp) v);
//概略匹配
if (className.toLowerCase().indexOf(&date&) & 0) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setDate(i + 1, java.sql.Date.valueOf((String) v));
pstmt.setDate(i + 1, new java.sql.Date(((java.util.Date) v).getTime()));
if (className.toLowerCase().indexOf(&time&) & 0) {
if ((_c.equals(&java.lang.String&)) && (!&&.equals(((String) v).trim()))) {
pstmt.setTime(i + 1, java.sql.Time.valueOf((String) v));
pstmt.setTime(i + 1, (java.sql.Time) v);
if (_c.equals(&java.io.FileInputStream&)) {
//调用如:FileInputStream in = new FileInputStream(&D:\\test.jpg&);的结果
pstmt.setBinaryStream(i + 1, (FileInputStream) v, ((FileInputStream) v).available());
}//java.io.FileInputStream
//其它特殊类型,非常用,置后,更多的setXXX方法详见《年鉴》p700
num = num + pstmt.executeUpdate();
} catch (java.lang.ClassCastException ex) {
throw new SQLException(&java.lang.ClassCastException: & + ex.getMessage(), ex.getCause());
} catch (NumberFormatException ex) {
throw new SQLException(&NumberFormatException: & + ex.getMessage(), ex.getCause());
} catch (IOException ex) {
throw new SQLException(&IOException: & + ex.getMessage(), ex.getCause());
} finally {
pstmt.close();
&&&&&&& 通配符对应的赋值方法参见“SQL数据类型与Java类的对应关系”一文
不同Android版本设备正确获取屏幕分辨率的通用方法
不同Android版本设备正确获取屏幕分辨率的通用方法
谈到android屏幕分辨率,大家都知道,但是怎么正确的获取屏幕的分辨率呢?android2.2\2.3\4.0\4.1使用的方法一样吗?
Android退出时退出所有Activity的通用类,MyApplication
做Android项目,退出程序时,有时不能退出所有的activity,这时我们就需要在退出时,关闭所有的activity。思路:当activity创建的时候把当前的Activity对象存放起来,等到退出的时候,关闭所有的Activity。为此,写了一个MyApplication类,用于存放所有的Activity。代
Android SDK无法更新解决办法
最近段时间因为某个会议导致google的链接经常断线,技术无罪啊!不过Android SDK从以前开始就时不时更新不了,好在之前不知道为什么就我宿舍一直都能更新,但现在终于让我撞上了。dl-被伟大的祖国给潜规则了。
解决办法有二。一为挂代理
实现简单的Android的播放视频功能
Filed Under : 计算机技术 by admin 八.11,2010 实现播放视频有两种方式,一种是使用VideoView;一种是使用SurfaceView。
VideoView 在main.xml中加入:
&AbsoluteLayout xmlns:android=&/apk
android裁剪缩略图的方法
public static Bitmap corp(Bitmap bitmap) { int corpWith = Configs.CORP_THUMBS_WIDTH; int corpHeight = Configs.CORP_THUMBS_HEIGHT; int width = bitmap.getWidth(); int height = bitmap.ge
Android实现类似微博的换肤功能 现在想做一个和新浪微博客户端一样的更换主题样式的功能,从网上搜了很多,多数都是说使用SharedUserid来控制,但是我不清楚,到底怎么使用,在主程序中如何来实现具体的更换操作;
其实我就是想要个这样的功能:
主程序一次性写好,默认自带有一套主题皮肤样式,之后的只需要像微博那样,下载新的皮肤apk安装即可更换;
即使客户端已经安装了很多个apk,主程
(转) Android中数据存储的5种方法
原址:http://apps./share/detail/
Android中数据存储的5种方法
简介:这是Android中数据存储的5中方法的详细页面,介绍了和手机软件,Android Android中数据存储的5中方法有关的知识, Android数据存储 Android提供了5种方式存储数
(转)内存溢出的解决办法 Android
(转)内存溢出的解决办法 Android
昨天在模拟器上给gallery放入图片的时候,出现java.lang.OutOfMemoryError: bitmap size exceeds VM budget 异常,图像大小超过了RAM内存。
模拟器RAM比较小,只有8M内存,当我放入的大量的图片
Android 4.0.1源码编译错误记录笔记
详细教程请参考这里:http://my.oschina.net/chenshouyong/blog/94540
编译之前,建议留有足够的磁盘空间,我下载的是4.0.1版本,11.1G源代码!!!本人之前一次编译时,home下只 剩下4G就贸然编译,结果后来 no more space,害得我只
为什么我做的定位程序没有谷歌地图(google map)精确 基于MapView做了一个地图程序,可以通过基站定位。
定位使用LocationManager,然后就是通用的监听方法,调用requestLocationUpdates
publicvoidonLocationChanged(Locationlocation){
能得到位置
android 游戏之场景的实现以及拓展应用照片浏览器
有些天没有写博客了,最近一直在为游戏打基础,主要因为之前是做应用,对游戏还不够了解.(这里瞎扯一点,我之所以转游戏,一方面:因为应用比较简单,开发人员跳级性的增长,加上HTML5的流行,如果HTML5移动上面完全铺开的话,后面可想而知...第二嘛:挣钱多,这也是我要转行的最主要的因素,
android 动态背景的实现以及SurfaceView中添加EditText控件
首先还是一贯作风,我们先看案例:
静态图看不出来效果,如果用过此
progressBar 子线程更新UI android中更新UI只能用UI线程,要在子线程中数据发生改变来更新主线程的ui,一般是通过消息机制,message和handler结合的方式,但是经过测试,发现ProgressBar更新进度条时,确实可以在子线程刷新,请了解内情者告知,感谢!
代码如下:
newThread(){ @Override public
onCreate()方法实现Activity自动跳转的疑惑 AnimationDrawable.start不能直接写在onCreate,onStart,onResume里面,都是无效的,无法启动动画,只能写在比如事件监听当中,网上的资料说是因为AnimationDrawable并未完全关联到Window,在onCreate()方法中,Vi
android 判断字符串是否为空的最优方法
在android 的开发中经常会使用判断字符串是否为空,虽然现在智能手机的运行速度越来越高,但为了使应用更加的流畅,我们应该保证
在编写程序时使用较好的方法来提高效率。一下为四种方法的运行时间的比较:
   public class TestEmptyString {
升级Android SDK到2.3错误的解决办法
升级了2.3的朋友应该知道,升级到2.3后,Eclipse会报错!不能编译运行了,解决办法如下。 1、因为升级后的2.3会在android-sdk-windows下创建一个platform-tools文件夹,其中包含了应该在tools文件夹下的东西,我们只需要将platform-tools文件夹下的所有文件复制到tools目录下。 2、然后在pl
android 连接服务器的方法及安全性问题
(一)Android网络通信的六种方式示例代码 有篇网文很不错:/android-.html,
在Android中几种网络编程的方式: (1)针对TCP/IP的Socket、ServerSocket (2)针对UDP的DatagramSocket、Datagram
android.content.res.Resources$NotFoundException错误的解决办法
EditText.setText(8);
当使用上面这样的代码时,将报错, 原因是将 这里的8 看为是资源。
正确的使用方法可以这样:
EditText.setText(8+&&);
Android异步处理二:使用AsyncTask异步更新UI界面
在《Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面》中,我们使用Thread+Handler的方式实现了异步更新UI界面,这一篇中,我们介绍一种更为简洁的实现方式:使用AsyncTask异步更新UI界面。 概述:AsyncTask是在Android SDK 1.5之后推出的一个
progressBar 子线程更新UI android中更新UI只能用UI线程,要在子线程中数据发生改变来更新主线程的ui,一般是通过消息机制,message和handler结合的方式,但是经过测试,发现ProgressBar更新进度条时,确实可以在子线程刷新,请了解内情者告知,感谢!
代码如下:
newThread(){ @Override public
关于处理Handler处理耗时的下载任务的问题 我在handler里面需要执行下载任务的代码,为了解决下载时界面不卡.在handler里面我又创建了一个线程来执行该下载的代码,但是子线程里面不能更新界面,难道我又在handler里面在得到下载的东西之后再用handler通过message来发送给自己,再来更新界面?怎么感觉这种方法很别扭,有更好的方法吗?
------最佳解决方案--------
Apk文件如何安装到Android模拟器的方法详解
一.如何正确的启动模拟器(早于Android 1.5的开发版本跳过此步) :   关于在eclipse里面如何集成android这些问题就不说了,这写问题我想还是不用在这里废话的。要正确的启动模拟,你必须先要创建一个 AVD( Android Virtual Device 虚拟设备 ) ,你可以创建多个AVD,但是你的每一个启动了的模拟器都必
关于android添加第三方字体的方法 android添加第三方字体,type=Typeface.createFromFile(&@assets/fonts/hwxk.ttf&);
tv=(TextView)findViewById(R.id.index_grid_detail_text);
关于android添加第三方字体的方法 android添加第三方字体,type=Typeface.createFromFile(&@assets/fonts/hwxk.ttf&);
tv=(TextView)findViewById(R.id.index_grid_detail_text);
[Android]去除程序中广告的好方法:告诉广告没有网络连接
实例程序:黑板 点击这里下载 安装到手机之后,打开wifi,可以看到广告了。
首先需要使用apktool进行反编译,然后使用notepad++搜索“connectivity”,会看到:
双击进入文件,可以看到程序调用getsystemservice来获取当前网络连接的状态:
.method public sta
android gridview 刷新页面后,仍停留在当前位置的方法 android上,我在一个页面上用gridview显示网格式的图片,点击每个图片执行对应的加载操作,执行完成后刷新真个gridview,当时每次刷新完成后,页面跳到最顶端,想让其每次刷新后,页面仍停留在点击位置......请各位大神不吝赐教。。。。
------最佳解决方案-------------------- 异步刷新用n
Android开发中Gallery的使用方法及技巧说明
很多人会知道iphone可以用手指直接拖动图片移动,这个效果让苹果吸引了很多人的眼球,同时也为它积攒了很多粉丝,现在Android也可以通过Gallery来实现这一效果。要实现这样的效果,必须事先要准备好你们要展示的图片,今天我们通过Gallery来实现滚动选择菜单,我们最好选择用一样规格的图片,这样切换起来效果上比较好,还有最好选择一些透
android自适应分辨率,希望一个layout就能通用 android自适应分辨率,我就知道有两种比较容易实现的。一种是代码实现布局,一种是多个layout来实现。
java 非静态类中 声明该类的静态类实例 其他类中 为什么能够不实例就能调用 该类的非静态方法 publicclassFirstGroupextendsActivityGroup{
publicstaticFirstG
privateArra
解决Android Google Map SDK的Key申请方法之一——但是KEY不能在map中正常显示
由于项目需要使用Google Map 的SDK来快速开发Android端的定位、导航功能,网上相关帖子很多, 但不论是修改Host文件或是网页代理,打开/android/maps-api-signup.html后不能找到申请的地方 最后黄天不负有心
请大侠提供一个Android中显示ppt的解决办法. 也就是显示ppt的源程序.
sqlite3的外键约束不好使?
droptablet_ droptablet_
createtablet_group ( idinteger, primarykey(id) ); createtablet_user ( id
Android 中Preferences的使用
Preferences 在Android当中被用来记录应用,以及用户喜好等等,它可以用来保存 简单的数据类型,如Int,Double,Boolean等。Preferences中保存的数据可以理解为Map型。我们通过PreferenceManager 以及getDefaultSharedPreferences(Context) 来获取它,比如当我们想
AsyncTask与Handler+Thread异步更新UI,哪种方式比较好? AsyncTask与Handler+Thread异步更新UI,哪种方式比较好?
------最佳解决方案-------------------- 一般是看数据量把
AsyncTask比Handler+Thread更加轻量级。
AsyncTask是android系统给你提供的
用起来比较的整齐,可重复
向 listview 中添加数据,如果有重复数据,如何更新数量(急急急) listview中列表显示用户选择的商品如下:
安卓更新ui我这 设计有问题吗 安卓中我每隔4秒读800字节也就是800个数据然后在4秒内把它画到surfaceview上,也就是每隔5毫秒画一个数据我这样频繁更新ui会不会影响其他功能的使用?请大侠帮助跪求
------最佳解决方案-------------------- 楼主,你这也叫频繁?cpu可不是吃干饭的啊。
WordPress for Android 已更新到2.0,网站管理也移动了
现在智能手机、平板电脑以无线上网的优势,引领移动新潮流,弄潮者当之无愧的要数安卓Andriod系统了,Android是一种基于Linux的自由及开放源代码的操作系统,因此广大设备厂家可以自由深度开发,因为开源,所以使用Android系统的设备也就便宜一点,据国外机构2012年11月公布的数据显示,Android占据全球
ADT版本号超过17后,所遇到的问题,如导入项目没有Android Dependencies目录、jars包导入的解决办法
Android Dependencies目录建立解决办法:
网上下载的demo导入第三方包运行后Android: NoClassDefFoundError的错误,原因是第三方的jar包并没有打包进ap
请教:获取ListView的第N项的View 大家好,我需要把一些信息放在屏幕上。需求是使用一个ListView,对于ListView的每一项,表现为,左边是一张图片,右边是一些重要文本。图片是从网络上下载下来的。
由于下载图片比较费时,而且图片也不是很重要,因此在实现的时候,需要先把ListView显示在屏幕上,在后台下载图片,没下载完一个图片,就实时的更新一下,这个时候需要获取到ListVi
实现动态旋转控件 网上好多资料都是通过属性来旋转
我现在是想做一个根据OrientationEventListener这个监听来动态的改变控件的方向
我想通过findViewById获取控件
然后在那个监听类中的onOrientationChanged&n

我要回帖

更多关于 jdbc setint null 的文章

 

随机推荐