1个重力联系人选择器库为Android

时间:2017-03-22 09:25:03

标签: android

有没有人使用1GravityContactsPicker Library for android。

我昨天刚发现这个,并决定在我的应用程序中使用它,因为它的功能很好。我做了所有步骤中提到的所有内容,但是当我开始活动时,我收到一条Toast消息说

  

属性未定义; " cp_textColorPrimary&#34 ;.你应用了正确的吗?   主题

我检查了图书馆的文件,并且我做了什么 1)添加了对gradle的依赖 2)向清单添加活动文件 3)启用联系人权限 4)下面是代码

 Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, ContactPickerActivity.class)
                        .putExtra(ContactPickerActivity.EXTRA_THEME, R.style.ContactPicker_Theme_Dark)

                        .putExtra(ContactPickerActivity.EXTRA_CONTACT_BADGE_TYPE,
                                ContactPictureType.ROUND.name())

                        .putExtra(ContactPickerActivity.EXTRA_CONTACT_DESCRIPTION,
                                ContactDescription.ADDRESS.name())
                        .putExtra(ContactPickerActivity.EXTRA_SHOW_CHECK_ALL, true)
                        .putExtra(ContactPickerActivity.EXTRA_SELECT_CONTACTS_LIMIT, 0)
                        .putExtra(ContactPickerActivity.EXTRA_ONLY_CONTACTS_WITH_PHONE, false)

                        .putExtra(ContactPickerActivity.EXTRA_CONTACT_DESCRIPTION_TYPE,
                                ContactsContract.CommonDataKinds.Email.TYPE_WORK)

                        .putExtra(ContactPickerActivity.EXTRA_CONTACT_SORT_ORDER,
                                ContactSortOrder.AUTOMATIC.name());

                startActivityForResult(intent, REQUEST_CONTACT);
            }
        });

任何人都可以帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

我有同样的问题。 这是因为在他的Actvity中他直接测试AppThem,如果你的应用程序主题没有实现Picker风格,那么检查一直都是假的。

// check if all custom attributes are defined
    if (! checkTheming()) {
        finish();
        return;
    }

为了解决这个问题,我已经在styles.xml中添加了新的主题

    <!-- LIGHT Theme -->
<style name="Theme_Light_Base" parent="@style/ContactPicker_Theme_Light">
    <!-- ActionBarCompat -->
    <item name="colorPrimary">@color/colorPrimary_light</item>
    <item name="colorAccent">@color/colorAccent_light</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark_light</item>

    <item name="backgroundColor">@color/background_light</item>
    <!--<item name="icTheme">@drawable/ic_palette_black_36dp</item>-->
    <!--<item name="icPickContact">@drawable/ic_person_add_black_36dp</item>-->
</style>

<style name="Theme_Light_picker" parent="@style/Theme_Light_Base"/>

<!-- DARK Theme -->
<style name="Theme_Dark_Base" parent="@style/ContactPicker_Theme_Dark">
    <!-- ActionBarCompat -->
    <item name="colorPrimary">@color/colorPrimary_dark</item>
    <item name="colorAccent">@color/colorAccent_dark</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark_dark</item>

    <item name="backgroundColor">@color/background_dark</item>
    <!--<item name="icTheme">@drawable/ic_palette_white_36dp</item>-->
    <!--<item name="icPickContact">@drawable/ic_person_add_white_36dp</item>-->
</style>

并直接在AndroidManifest.xml中的ActivityPicker上应用:

    <activity
        android:name="com.onegravity.contactpicker.core.ContactPickerActivity"
        android:enabled="true"
        android:exported="false"
        android:theme="@style/Theme_Light_picker">

        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>