zoukankan      html  css  js  c++  java
  • 编辑联系人

    相关类
    packages/apps/Contacts/src/com/android/contacts/activities/ContactEditorActivity.java
    packages/apps/Contacts/src/com/android/contacts/editor/ContactEditorFragment.java
    packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
    packages/apps/Contacts/src/com/android/contacts/editor/RawContactEditorView.java
    packages/apps/Contacts/src/com/android/contacts/model/RawContactDeltaList.java

    编辑联系人界面从8.0开始修改为ContactEditorActivity,但同时兼容旧的联系人编辑界面CompactContactEditorActivity

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <!-- Edit or create a contact with only the most important fields displayed initially. -->
    <activity
    android:name=".activities.ContactEditorActivity"
    android:theme="@style/EditorActivityTheme">
    <intent-filter>
    <action android:name="android.intent.action.INSERT"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="vnd.android.cursor.dir/person"/>
    <data android:mimeType="vnd.android.cursor.dir/contact"/>
    <data android:mimeType="vnd.android.cursor.dir/raw_contact"/>
    </intent-filter>
    </activity>
    <!-- Keep support for apps that expect the Compact editor -->
    <activity-alias
    android:name="com.android.contacts.activities.CompactContactEditorActivity"
    android:exported="true"
    android:targetActivity=".activities.ContactEditorActivity">
    <intent-filter android:priority="-1">
    <action android:name="android.intent.action.INSERT"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="vnd.android.cursor.dir/person"/>
    <data android:mimeType="vnd.android.cursor.dir/contact"/>
    <data android:mimeType="vnd.android.cursor.dir/raw_contact"/>
    </intent-filter>
    </activity-alias>
    一般情况下编辑联系人界面的启动分两种情况,existing_contact 和 new_contact

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Override
    public void onCreate(Bundle savedState) {
    super.onCreate(savedState);
    ......
    if (Intent.ACTION_EDIT.equals(action)) {
    mActionBarTitleResId = R.string.contact_editor_title_existing_contact;
    } else {
    mActionBarTitleResId = R.string.contact_editor_title_new_contact;
    }
    ......
    }
    ContactEditorActivity的onCreate方法中创建并调用了ContactEditorFragment,由该Fragment负责整个编辑界面的操作和维护,ContactEditorFragment中主要是用自定义ViewRawContactEditorView来展示和编辑联系人数据,从而形成了完整的用户交互

    联系人数据编辑完成后的后续保存工作由ContactSaveService类来负责完成,需要注意的是ContactSaveService是一个IntentServer,用在此处恰到好处,当快速处理完Intent任务就会立马释放资源
    ————————————————

  • 相关阅读:
    汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI、汉诺塔VII
    2014工大校赛题目以及解
    三国武将查询系统 //Java 访问 数据库
    LR(1)文法分析器 //c++ 实现
    维护前面的position+主席树 Codeforces Round #406 (Div. 2) E
    区间->点,点->区间,线段树优化建图+dijstra Codeforces Round #406 (Div. 2) D
    有向图博弈+出度的结合 Codeforces Round #406 (Div. 2) C
    树的性质和dfs的性质 Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) E
    还不会做! 树上的gcd 树分治 UOJ33
    树上的构造 树分治+树重心的性质 Codeforces Round #190 (Div. 2) E
  • 原文地址:https://www.cnblogs.com/ly570/p/11414323.html
Copyright © 2011-2022 走看看