android需知小细节
1. 布局文件命名不能包含大写字母,特殊字符。MyImageView.xml错误。
2. simpleAdapter适配器参数的含义: 
3. gridview
gridview的三个重要的属性:

4.全局获取Context的技巧
在Android开发中,很多地方都要用到Context上下文这个类对象,比如:弹出 Toast的时候需要、启动活动的时候需要、发送广播的时候需要、操作数据库的时候需要、使用通知的时候需要等。
如果是在Activity中,那么获取这个context对象很容易,因为Activity本身就继承Context,直接受用this就可以了。但是对于比较复杂的逻辑,这些代码没有放在Activity中,那么,获取Context就显得不是那么容易了。
这里告诉大家一个技巧:
Android 提供了一个 Application 类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。 而我们可以定制一个自己的 Application 类, 以便于管理程序内一些全局的状态信息,比如说全局 Context。
1,新建一个类MyApplication继承Application.
package com.example.networktest;
public class MyApplication extends Application {
private static Context context;
@Override
public void onCreate() {
context = getApplicationContext();
}
public static Context getContext() {
return context;
}
}
2,在 AndroidManifest.xml 文件的<application>标签下进行指定就可以了,代码如下所示:
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.example.networktest"
- android:versionCode="1"
- android:versionName="1.0" >
- ……
- <application
- android:name="com.example.networktest.MyApplication"
- …… >
- ……
- </application>
- </manifest>
注意:指定 MyApplication 的时候一定要加上完整的包名,不然系统将无法找到这个类。
这样我们就已经实现了一种全局获取 Context的机制,之后不管你想在项目的任何地方
使用 Context,只需要调用一下 MyApplication.getContext()就可以了。
5.Handler与Looper、Message的关系 android异步加载框架:handler+looper+message
总结:handler负责发送消息,looper负责接收handler发送的消息,并直接把消息回传给handler自己。
MessageQueue就是一个存储消息的容器。
6. 主线程和子线程之间的传递,需要用到handler中的setmessage
如果想在子线程中更新ui线程,可以使用handler.post(runnable);
activity类和非activity类如适配器BaseAdapter类,可以使用传递构造方法的方式传递activity.this; 如:
mImgAdapter = new ImageAdapter(this, mImgs,
mCurrentDir.getAbsolutePath());// 当前文件夹的绝对路径
public ImageAdapter(Context context, List<String> mDatas, String dirPath) {
this.mDirPath = dirPath;// 父路径
this.mImgPaths = mDatas;// 所有图片
mInflater = LayoutInflater.from(context);
this.context = context;
mSelectedImg.clear();
}
android需知小细节的更多相关文章
- Android开发学习——小细节注意
Android中通过Intent调用其他应用的方法(转) Android中两种序列化方式的比较Serializable和Parcelable http://www.jcodecraeer.com/a/ ...
- css小细节罗列
有空时候把一些常见可能不是每个人都知道的css小细节总结了下,共勉. 1.line-height 众多周知,line-height是行高的意思,我们时常会使用类似line-height:24px;这样 ...
- .NET框架- in ,out, ref , paras使用的代码总结 C#中in,out,ref的作用 C#需知--长度可变参数--Params C#中的 具名参数 和 可选参数 DEMO
C#.net 提供的4个关键字,in,out,ref,paras开发中会经常用到,那么它们如何使用呢? 又有什么区别? 1 in in只用在委托和接口中: 例子: 1 2 3 4 5 6 7 8 9 ...
- SQL Server 隐式转换引发的躺枪死锁-程序员需知
在SQL Server的应用开发过程(尤其是二次开发)中可能由于开发人员对表的结构不够了解,造成开发过程中使用了不合理的方式造成数据库引擎未按预定执行,以致影响业务.这是非常值得注意的.这次为大家介绍 ...
- Android 之窗口小部件详解(三) 部分转载
原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...
- Android应用开发-小巫CSDN博客clientJsoup篇
Android应用开发-小巫CSDN博客clientJsoup篇 距上一篇博客已经过去了两个星期,小巫也认为很抱歉,由于在忙着做另外一个项目,差点儿抽不出空来,这不小巫会把剩下的博文全部在国庆补上.本 ...
- Vue.js 和 MVVM 的小细节
Vue.js 和 MVVM 的小细节 转载 作者:流云诸葛 链接:www.cnblogs.com/lyzg/p/6067766.html MVVM 是Model-View-ViewModel 的缩写, ...
- 关于 Unity 的一些小细节,不注意可能会被“坑”一些时间。
关于 Unity 的一些小细节,不注意可能会被"坑"一些时间. 最近因为一些"小"问题,总是需要找很久的原因,总结一下 UnityEngine.Input 在使 ...
- 学习Java,容易被你忽略的小细节(2)
昨天心情真的太糟糕了,写完<学习Java,值得注意你注意的问题(1)>之后,迎来些许的支持以后就是一片片的谴责.我的主页上涌现出许许多多Java方面的牛人,谴责我水平太低,写的问题太初级. ...
随机推荐
- Codeforces Round #175 (Div. 2)
A. Slightly Decreasing Permutations 后\(k\)个倒序放前面,前\(n-k\)个顺序放后面. B. Find Marble 模拟. C. Building Perm ...
- A log about Reading the memroy of Other Process in C++/WIN API--ReadProcessMemory()
Memory, is a complex module in Programing, especially on Windows. This time, I use cpp with win wind ...
- 移动端 touch 事件的originalEvent
对于移动端的触摸事件,我们通过touchstart.touchmove.touchend实现,PC端一般使用mousedown.mousemove.mouseup实现. 我们获取事件坐标,原生js获取 ...
- ASP.NET MVC5 实现网址伪静态
一.路由规则: routes.MapRoute( name: "Default1", url: "more_{root}_{plate}.html", defa ...
- Unity5 AssetBundle
设置assetBundleName AssetImporter importer = AssetImporter.GetAtPath(p); importer.assetBundleName = x; ...
- createjs 入门之EaselJs 绘制图片Bitmap
var canvas=document.getElementById('demoCanvas'); canvas.width=window.innerWidth; canvas.height=wind ...
- securityCRT mongoDB 命令行删除(backspace/delete)无效问题
1.MongoDB Shell中退格键使用的问题. 利用SecureCRT工具访问linux的时候,在使用MongoDB的交互式shell的时候,退格键(Backspace)无法使用,导致无法修改输入 ...
- Beta版本冲刺——day4
No Bug 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 站立式会议 今日计划表 人员 工作 ...
- 动态sql语句基本语法--Exec与Exec sp_executesql 的区别
http://www.cnblogs.com/goody9807/archive/2010/10/19/1855697.html 动态sql语句基本语法 1 :普通SQL语句可以用Exec执行 ...
- 【Infobright】infobright数据导入导出测试
创建数据库 create database if not exists `mytestdb` default charset=utf8; use mytestdb; 说明: 如果使用utf8字符集,则 ...