自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Programming like a dog

淡泊明志 宁静致远 谦虚谨慎 戒骄戒躁

  • 博客(14)
  • 收藏
  • 关注

原创 处理动态类型的方法

-(BOOL) isKindOfClass: class-object  对象是不是class-object或其子类的成员 -(BOOL) isMemberOfClass:class-object 对象是不是class-object的成员 -(BOOL) respondsToSelector:Selector 对象是否能够相应selector所指定的方法 +(BOOL) instan

2015-12-25 16:45:15 422

原创 @property和@synthesize 用法

声明部分 @property:自动生成设值和取值方法 实现部分 @synthesize 指令:告诉编译器 为属性生成一对设值方法和取值方法假如有一个x的属性,则通过@synthesize 会自动实现一个取值方法x,一个设值方法setX@interface Fraction:NSObject@property int numerator,denominator;-(void) print;

2015-12-11 15:38:03 467

原创 android Notification跳转 getIntent()问题

今天写IM推送,点击Notification跳转至聊天界面时,getIntent()始终获取到的是第一次点击notification时候传递过来的Intent. 问题出现的原因,是PendingIntent初始化参数问题。错误代码 PendingIntent intent = PendingIntent.getActivity(context,0, notif

2015-11-26 13:27:42 988

原创 使用Activity和Delegate与Adapter交互

通过委托模式(Delegation Pattern)可以帮助我们把所有业务逻辑从Adapter中移动到Activity。 我们创建一个sample,通过该project可以向列表中添加电话号码,列表中每一行都有一个remove按钮,用于删除电话号码。 思路:在适配器中实现“remove”按钮的点击处理,但是并不在适配器中实现删除对象的方法。我们通过一个委托接口调用Activity的方法删除对象。

2015-10-09 00:40:56 1815

原创 android 处理空listview

相信大多数人处理listview为空的时候,压根就是不处理,这样造成很不好的用户体验。 在ListView中的setEmptyView(view),可以避免空列表,也就是加载一个view来代替当listview为空的情况。main.xml <FrameLayout android:layout_width="match_parent" android:layout_

2015-10-05 17:29:38 524

原创 android 编译apk移除log日志

移除log日志的方式可能有很多种: 比如有些人用一个标识来移除if(BuildConfig.DEBUG){ Log.d(TAG,"xxxx");}我认为移除日志的最佳方法是使用 ProGuard工具。 当我们编译android project的时候,我们可以在项目根目录找到一个名为proguard-project.txt的文件。有了这个文件,并不意味着ProGuard的功能默认是生效的

2015-10-03 17:33:50 2749

原创 Android 设置background(seletor)无效

这个是有问题的Drawable:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/register_button_bg_default"/> <item andr

2015-09-25 16:39:33 1787

原创 代理模式(Proxy Pattern)

代理模式定义:为其他对象提供一种代理以控制这个对象的访问。(就像平时你不想去买东西,找个人代买一样)。通用类图:Subject 抽象主题角色 抽象主题角色可以是抽象类也可以是接口。public interface Subject { public void request();}RealSubject 具体主题角色 被代理角色或委托角色。业务逻辑的具体执行者public clas

2015-06-03 17:02:40 621

原创 组件间的数据传递

温故而知新,可以为师,咦…切入正题,下面介绍五种组件间的数据传递:使用intent.putExtras() 我们最常用的一种方式,Intent对象适用于两个组件间点对点的数据传递,而不适合多个组件共享数据的场景。如果组件间需要传递的数据过大,那就不要全部读入到intent的extras中进行序列化传递,而应将数据放在外存储设备中,通过URI传递。一般我们startActivity中传递对象,那么

2015-06-02 16:22:42 685

原创 Service.onStartCommand() 返回值详解

温故而知新,最新在复习的时候,突然发现又学到了不少东西。我们开启一个服务的时候,会调用onStartCommand()方法。 onStartCommand源码:private boolean mStartCompatibility = false;public int onStartCommand(Intent intent, int flags, int startId) {

2015-06-02 13:35:02 803

原创 工厂方法模式(Factory Method Pattern)

工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到了其子类。 通用类图: 抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义。Creator为抽象创建类,也就是抽象工厂,具体如何创建产品类是由具体的实现工厂ConcreteCreator完成的。鉴于我媳妇太爱吃糖那么,我就以Sugar为例。嗯…如图: AbstractSugarF

2015-06-02 11:42:51 507

原创 单例模式(Singleton Pattern)

单例模式:某一个类只有一个实例,并且是自己在类中实例化然后向整个系统提供这个实例。(就好比在你的一生里,媳妇只有一个)

2015-06-01 20:06:37 414

原创 ListActivity ListView的id为什么要用@android:id/list

今天用到ListActivity这个Activity的子类,发现了一个问题,就是以前我们在学ListActivity的时候,如果用到了ListActivity,我们用自己定义的布局的时候,ListView控件的id必须要写成@id/android:list或者@android:id/list(区别下面说),还有我用了@+id/android:list竟然也是可以的。<ListView

2015-03-24 18:34:07 2238

原创 android 为什么可以在子线程更新UI

这是小弟我第一篇博客,说的不对或者错的地方请各位大大指错。相信大家在学android的时候,都是说在android中不能在子线程中更新UI。 那么是真的吗? 那么,我们不妨先测试一下下面的代码:mTv = (TextView) findViewById(R.id.id_text); new Thread(){ public void run() { mTv.setText("

2015-03-24 11:18:30 842

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除