android开发遇到的问题(不定期更新)

开发新浪微博时的遇到的一些问题总结与解决办法:

 

微博开发几个重点

1.在用json解析时候  得到某个数据 最好用optString("");

optString("");如果有值 则返回值  没有  则返回 一个空字符 避免异常的发生

2.纵观其他微博,都 是让用户先看到界面然后一个和progressBar的东西一直在加载数据

所以 最好 实现 异步加载数据   让UI线程先执行完 然后通过Handler去更新组件

3.在listview中如果 有button,imagebutton等控件 那么listview是无法 获取响应setOnItemClickListener这个监听方法

解决办法 :

 在Listview子项根布局中 加入android:descendantFocusability="blocksDescendants"这个代码 

4.

如果在一个静态类中定义一个集合 那么要在别一类中赋值给集合 用

OtWeibo.uids = newArrayList<String>(Arrays.asList(info.split(","))) ; 构造函数的方法

如果用 OtWeibo.uids = Arrays.asList(info.split(",")) ;系统将会报异常

5.使用android自带邮件发送时注意:使用

intent.putExtra() 来置入寄件入(EXTRA_EMAIL)、主题(EXTRA_SUBJECT)、

邮件内容(EXTRA_TEXT)以及其他Email的字段(EXTRA_BCC、EXTRA_CC)。

intent.setType("text/plain");//模拟器请使用这行 

intent.setType("message/rfc822"); // 真机上使用这行

6.如果何在button中设置图片:图片在左边的效果

button有一个xml属性:android:drawableLeft=""  通过这样能设置一个图片在左边  然后右边可以写text值

7.摄像头捕获的画面由surfaceview控件来定义

只有surfaceview被创建后摄像头画面通过它 才能传到界面上

 

平时开发时遇到的一些问题及解决办法:

 

1.     在适配器中,button是无法通过映射到adapter中的。

 

2.在android中我们常用到自定义的布局,自己重写view组件在重绘图片时要注意 在非UI线程中用myView.postInvalidate() ;

这个方法,但是这个myview对象如果你又重新定义了 如:myview = new Myview();  这个时候 你调用 它myView.postInvalidate() ;

这是不会调用ondraw();方法的 因为setContentView(myView);这个方法已经设置了布局  所以你必须还要重新设置布局。setContentView(myView);

 

3.上下文对象的实例化过程:context:这个对象是在实例化对象以后 也就是instance已经被创建的时候,才setContext.如果在实例

化对象之前调用this.getContext()它会是空指针。

 

4.在进行单元测试时常常会遇到的问题:

Unable to findinstrumentation target package:

这是因为在配置清单文件时根mainfest里的包package="com.example.db.activity"必须和目标包android:targetPackage="com.example.db.activity"

保持一致 否则会报这个错误。

 

5.在布局文件中。可以使用自定义的文件 ,但是要继承view这个类 在布局文件中的时候声明< 包.类名/>

 

6.在数据适配器中,当我们使用simpleCursorAdapter时,我们一定要注意的一个是"_id",如果 我们数据库中的id字段不是"_id",

那么就会报错,解决办法有两种:

第一种:修改字段的id为"_id" ;

第二种 :在返回一个Cursor时。可以把数据的id字段修改为"_id" ;如:select personid as _id * from table;

 

7.在清单文件(AndroidManifest.xml)中无法自动提醒问题:

1.首先判断ADT 和SDK是不是一个版本的。

2.如果1没问题 就在打开AndroidManifest.xml时是 点击AndroidManifest.xml右键->OpenWith->Android Manifest Editor。然后就有了。。哈哈。终于解决。

 

8.在一个jsp中如果返回的页面数据是一个xml数据

<%@page language="java" contentType="text/xml; charset=utf-8" pageEncoding="utf-8"%><?xml version="1.0" encoding="utf-8"?>

${data}

Data:是一个xml数据

这是一个很简单的例子吧。可是我就遇到一个奇葩的问题,我用http://localhost:8080/androidtest这个地址访问是没有一点问题的,但是我用我的Ip地址http://192.168.1.12/androidtest访问结果就出现空白页面,什么都没有,我查遍网上资料,结果偶然发现原来<?xmlversion="1.0" encoding="utf-8"?>这个xml声明头必须得与jsp声明头放在同一行。这个问题硬是让我卡了半天,希望同僚们看到不会出现这个错误了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值