有些客户有需求在新建/编辑联系人时,“添加其他字段”列表中有生日字段


[SOLUTION]


请参考敝司以前的Demo Code,这是用来设置“ 活动” 字段的, “ 活动” 中有“ 生日” 的选项。
solution如下供参考:


【JB版本】


1、在文件LocalPhoneAccountType.java的LocalPhoneAccountType()函数中,将如下语句注释掉
的语句拿出:

addDataKindEvent(context);


2、增加这个在addDataKindEvent函数,在LocalPhoneAccountType.java中实现
addDataKindEvent(),
其实现如下:
protected DataKind addDataKindEvent(Context context) throws
DefinitionException {
DataKind kind = addKind(new
DataKind(Event.CONTENT_ITEM_TYPE,R.string.eventLabelsGroup,150,true,
R.layout.event_field_editor_view));
kind.actionHeader = new EventActionInflater();
kind.actionBody = new SimpleInflater(Event.START_DATE);
kind.typeOverallMax = 1;
kind.typeColumn = Event.TYPE;
kind.typeList = Lists.newArrayList();
kind.typeList.add(buildEventType(Event.TYPE_BIRTHDAY,false).setSpecificMax
(1));
kind.dateFormatWithYear = DateUtils.DATE_AND_TIME_FORMAT;
kind.fieldList = Lists.newArrayList();
kind.fieldList.add(new
EditField(Event.DATA,R.string.eventLabelsGroup,FLAGS_EVENT));
return kind;
}


【KK版本】
修改LocalPhoneAccountType.java (alps\packages\apps\contactscommon
\src\com\mediatek\contacts\model)


(1).添加
import android.provider.ContactsContract.CommonDataKinds.Event;
import com.android.contacts.common.util.DateUtils;


(2).LocalPhoneAccountType的构造函数中try语句内添加
addDataKindEvent(context);


(3).实现函数addDataKindEvent(Context context)
protected DataKind addDataKindEvent(Context context) throws
DefinitionException {
DataKind kind = addKind(new
DataKind(Event.CONTENT_ITEM_TYPE,R.string.eventLabelsGroup,150,true));
kind.actionHeader = new EventActionInflater();
kind.actionBody = new SimpleInflater(Event.START_DATE);
kind.typeOverallMax = 1;
kind.typeColumn = Event.TYPE;
kind.typeList = Lists.newArrayList();
kind.typeList.add(buildEventType(Event.TYPE_BIRTHDAY,false).setSpecificMax
(1));
kind.dateFormatWithYear = DateUtils.DATE_AND_TIME_FORMAT;
kind.fieldList = Lists.newArrayList();
kind.fieldList.add(new
EditField(Event.DATA,R.string.eventLabelsGroup,FLAGS_EVENT));
return kind;
}