第一个Android Project中遇到的问题
来源:互联网 发布:男女审美差异 知乎 编辑:程序博客网 时间:2024/06/05 11:11
最近在完成一个项目,用作练习的
https://github.com/Kuanghusing/Weather
progressDialog
progressDialog = ProgressDialog.show(context,title,msg)//context在onCreate()的getActivityContext()获得
看似简单,但是本人能力菜鸟级别,遇到很多问题
Error : BinderProxy@45d459c0 is not valid; is your activity running?
触发这个Error是在进入Activity后->按Back键 ->再次进入Activity后调用这个方法
http://stackoverflow.com/questions/7811993/error-binderproxy45d459c0-is-not-valid-is-your-activity-running
这是stackOver flow的解决方法是
if(!((Activity) context).isFinishing()){ //show dialog}
尝试过后无效……实在不知道什么问题,以后解决
需要返回结果的子线程
涉及UI操作要用
Handle.sendMessage(msg)
或
Handler handler = new Handler(Looper.getMainLooper()); Handle.post(runnerable)
实际上是同一个方法,只是方法封装了
处理返回的结果
例如初始化NavigationView的onNavigationItemSelectedListened()
这个需要子线程
完成,第一次写的时候没注意,在主线程处理结果,(主线程不知道什么时候返回结果)绕了很长的路才发现问题
url编码
address.replaceAll(" ", "%20").replaceAll("\"", "%22");
url需要编码才能用get方法
url包含中文的话,在API 23上不需要编码,在API19上需要
URLEncoder.encode(city_name, "UTF-8");
但是如果直接用URLEncoder.encode()方法传入URL就会出现识别不了host这种奇葩的问题,查质料后发现编码标准的问题
Menu
toolbar上的菜单(按钮)注册Click事件要调用
toolbar.setOnMenuItemClickListener();
再覆写onMenuClick()
方法
toolbar最左边的图标(返回键或其他的)需要覆写Activity的onOptionsItemSelected()
方法
ArrayAdapter
想要通知Adapter更新数据
adapter.notifyDataSetChanged()
要注意的是不能给实例化adapter是的List重新分配内容,例如dataList = getList()
adapter指认原始的dataList的地址,地址改变后就不能更新数据了
数据库
新建一个数据库要新建一个类继承自SQLiteOpenHelper
再新建一个处理数据库的类
public synchronized static WeatherDB getInstance(Context context) { if (weatherDB == null) { weatherDB = new WeatherDB(context); } return weatherDB; }
保证只有 一个db实例化对象
效率问题
如果要一次插入很多数据,因为contentValues不能给同一个字段不同值(想想有点不合理,sql语法中不是可以一次insert多个记录吗)
使用循环就出现效率问题
可以使用事务管理器
try{ db.beginTransaction()//do db insert db.setTransactionSuccessfully()}catch(){}finally{ db.endTransaction();}
- 第一个Android Project中遇到的问题
- Android studio 遇到的第一个问题
- 遇到的第一个问题
- 【android开发入门】第一个android程序遇到的问题
- Android的第一个程序遇到的问题
- 使用jetbrains idea开发android遇到的第一个问题
- 创建第一个android程序遇到的问题
- 实习中遇到的第一个问题! finally version
- directx9程序中遇到的第一个问题 error2061 __RPC__out_xcount_part
- 第一个java Web项目中遇到的问题(上)
- 我的第一个Android Project
- 学C++遇到的第一个问题
- 在C遇到的第一个问题!
- 第一个DWR程序遇到的问题
- 写第一个VC++遇到的问题
- 第一个遇到的问题,关于KEILL
- 第一个MapReduce程序遇到的问题
- Eclipse遇到的第一个问题
- # 数据结构-顺序表和链式表
- 2016年个人工作总结
- html5语法有哪些改变
- Atitit.数据操作dsl 的设计 ---linq 方案
- [Android] BottomBar+ViewPager+Fragment实现炫酷的底部导航效果20160523
- 第一个Android Project中遇到的问题
- php面向对象编程
- dfs
- List排序之根据对象属性
- javaScript中的static类型数据
- Adnroid调用自身的播放器来播放音乐
- <GPS> Guided Policy Search
- Atitit.二维码功能的设计实践 attilax 总结
- 设计模式之五原型模式