二进制XML文件行#23:错误膨胀类com.example.caesar.library.ChipView

时间:2015-12-19 00:33:23

标签: java android xml shared-libraries android-chips

我有一个似乎无法解决的错误。这是我的XML activity_main。这是第23行.com.example.caesar.library.ChipView我不知道问题是什么,因为可以找到库。该应用程序运行完美,但一旦它击中模拟器就会崩溃。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:chip="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp"
            android:text="@string/default_chip" />

        <com.example.caesar.library.ChipView
            android:id="@+id/text_chip_default"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp"
            android:layout_marginTop="20dp"
            android:text="@string/attrs_chip" />

        <com.example.caesar.library.ChipView
            android:id="@+id/text_chip_attrs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            chip:chip_background="@color/deep_orange"
            chip:chip_background_selected="@color/blue_grey"
            chip:chip_corner_radius="6dp"
            chip:chip_line_spacing="20dp"
            chip:chip_padding="10dp"
            chip:chip_side_padding="10dp"
            chip:chip_spacing="16dp" />
        <!-- chip:chip_background_res="@drawable/chip_selector" -->

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp"
            android:layout_marginTop="20dp"
            android:text="@string/with_layout" />

        <com.example.caesar.library.ChipView
            android:id="@+id/text_chip_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Add"
            android:id="@+id/button"
            android:layout_gravity="right"/>

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/editText" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp"
            android:layout_marginTop="20dp"
            android:text="@string/with_override" />

        <com.example.caesar.library.ChipView
            android:id="@+id/text_chip_override"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</ScrollView>

这是我的主要活动。 line setContentView(R.layout.activity_main);得到指点

public class MainActivity extends Activity implements OnChipClickListener {

    Button addbtn;
    EditText interestET;
    String interest;

    private ChipView mTextChipLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        List<Chip> mTagList1 = new ArrayList<>();
        mTagList1.add(new Tag("Lorem"));
        mTagList1.add(new Tag("Ipsum dolor"));
        mTagList1.add(new Tag("Sit amet"));
        mTagList1.add(new Tag("Consectetur"));
        mTagList1.add(new Tag("adipiscing elit"));

        List<Chip> mTagList2 = new ArrayList<>();
        mTagList2.add(new Tag("Lorem", 1));
        mTagList2.add(new Tag("Ipsum dolor", 2));
        mTagList2.add(new Tag("Sit amet", 3));
        mTagList2.add(new Tag("Consectetur", 4));
        mTagList2.add(new Tag("adipiscing elit", 5));

        // Adapter
        ChipViewAdapter adapterLayout = new MainChipViewAdapter(this);
        ChipViewAdapter adapterOverride = new MainChipViewAdapter(this);

        // Default ChipTextView
        ChipView mTextChipDefault = (ChipView) findViewById(R.id.text_chip_default);



        interestET = (EditText) findViewById(R.id.editText);
        addbtn = (Button) findViewById(R.id.button);
        mTextChipDefault.setChipList(mTagList1);

        // Attrs ChipTextView
        ChipView mTextChipAttrs = (ChipView) findViewById(R.id.text_chip_attrs);
        mTextChipAttrs.setChipList(mTagList1);
        mTextChipAttrs.setOnChipClickListener(new OnChipClickListener() {
            @Override
            public void onChipClick(Chip chip) {

            }
        });

        // Custom layout and background colors
        mTextChipLayout = (ChipView) findViewById(R.id.text_chip_layout);
        mTextChipLayout.setAdapter(adapterLayout);
        mTextChipLayout.setChipLayoutRes(R.layout.chip_close);


        mTextChipLayout.setChipBackgroundColor(getResources().getColor(R.color.light_green));
        mTextChipLayout.setChipBackgroundColorSelected(getResources().getColor(R.color.green));
        // mTextChipLayout.setChipList(mTagList1);
        mTextChipLayout.setOnChipClickListener(this);

        // Chip override
        ChipView mTextChipOverride = (ChipView) findViewById(R.id.text_chip_override);
        mTextChipOverride.setAdapter(adapterOverride);
        mTextChipOverride.setChipList(mTagList2);

        addbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                interest = interestET.getText().toString().trim();
                mTextChipLayout.add(new Tag(interest));
                interestET.setText("");
            }
        });
    }

    @Override
    public void onChipClick(Chip chip)
    {
        mTextChipLayout.remove(chip);
    }
}

这是logcat

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.caesar.myapplication/com.example.caesar.myapplication.MainActivity}: android.view.InflateException: Binary XML file line #23: Error inflating class com.example.caesar.library.ChipView
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
            at android.app.ActivityThread.access$800(ActivityThread.java:151)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5257)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: android.view.InflateException: Binary XML file line #23: Error inflating class com.example.caesar.library.ChipView
            at android.view.LayoutInflater.createView(LayoutInflater.java:633)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)
            at android.app.Activity.setContentView(Activity.java:2145)
            at com.example.caesar.myapplication.MainActivity.onCreate(MainActivity.java:28)
            at android.app.Activity.performCreate(Activity.java:5990)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
            at android.app.ActivityThread.access$800(ActivityThread.java:151)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5257)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Constructor.newInstance(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
            at android.view.LayoutInflater.createView(LayoutInflater.java:607)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)
            at android.app.Activity.setContentView(Activity.java:2145)
            at com.example.caesar.myapplication.MainActivity.onCreate(MainActivity.java:28)
            at android.app.Activity.performCreate(Activity.java:5990)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
            at android.app.ActivityThread.access$800(ActivityThread.java:151)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5257)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f0b0000
            at android.content.res.Resources.getValue(Resources.java:1266)
            at android.content.res.Resources.getColor(Resources.java:920)
            at com.example.caesar.library.ChipViewAdapter.getColor(ChipViewAdapter.java:253)
            at com.example.caesar.library.ChipViewAdapter.init(ChipViewAdapter.java:102)
            at com.example.caesar.library.ChipViewAdapter.setAttributeSet(ChipViewAdapter.java:266)
            at com.example.caesar.library.ChipViewAdapter.<init>(ChipViewAdapter.java:93)
            at com.example.caesar.library.ChipView$1.<init>(ChipView.java:46)
            at com.example.caesar.library.ChipView.init(ChipView.java:46)
            at com.example.caesar.library.ChipView.<init>(ChipView.java:36)
            at java.lang.reflect.Constructor.newInstance(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
            at android.view.LayoutInflater.createView(LayoutInflater.java:607)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)
            at android.app.Activity.setContentView(Activity.java:2145)
            at com.example.caesar.myapplication.MainActivity.onCreate(MainActivity.java:28)
            at android.app.Activity.performCreate(Activity.java:5990)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
            at android.app.ActivityThread.access$800(ActivityThread.java:151)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5257)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

这是ChipViewAdapter

public abstract class ChipViewAdapter extends Observable {
    private Context mContext;
    private AttributeSet mAttributeSet;
    private int mChipSpacing;
    private int mLineSpacing;
    private int mChipPadding;
    private int mChipCornerRadius;
    private int mChipSidePadding;
    private int mChipTextSize;
    private int mChipRes;
    private int mChipBackgroundColor;
    private int mChipBackgroundColorSelected;
    private int mChipBackgroundRes;
    private boolean mHasBackground = true;
    private boolean mToleratingDuplicate = false;
    private LayoutInflater mInflater;
    private List<Chip> mChipList;

    /**
     * Return the Chip layout res id
     * Override it if you want to have different logic depending of Chip
     *
     * @return int
     */
    public abstract int getLayoutRes(int position);

    /**
     * Return the Chip background res id
     * Override it if you want to have different logic depending of Chip
     *
     * @return int
     */
    public abstract int getBackgroundRes(int position);

    /**
     * Return the Chip background color
     * Override it if you want to have different logic depending of Chip
     *
     * @return int
     */
    public abstract int getBackgroundColor(int position);

    /**
     * Return the Chip color for selected state
     * Override it if you want to have different logic depending of Chip
     *
     * @return int
     */
    public abstract int getBackgroundColorSelected(int position);

    /**
     * Have a chance to modify the Chip layout
     */
    public abstract void onLayout(View view, int position);

    public ChipViewAdapter(Context context) {
        this(context, null);
    }

    public ChipViewAdapter(Context context, AttributeSet attributeSet) {
        mContext = context;
        mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mChipList = new ArrayList<>();
        setAttributeSet(attributeSet);
    }

    private void init() {
        mChipSpacing = mContext.getResources().getDimensionPixelSize(R.dimen.chip_spacing);
        mLineSpacing = mContext.getResources().getDimensionPixelSize(R.dimen.chip_line_spacing);
        mChipPadding = mContext.getResources().getDimensionPixelSize(R.dimen.chip_padding);
        mChipSidePadding = mContext.getResources().getDimensionPixelSize(R.dimen.chip_side_padding);
        mChipCornerRadius = mContext.getResources().getDimensionPixelSize(R.dimen.chip_corner_radius);
        mChipBackgroundColor = getColor(R.color.chip_background);
        mChipBackgroundColorSelected = getColor(R.color.chip_background_selected);

        if (mAttributeSet != null) {
            TypedArray typedArray = mContext.getTheme().obtainStyledAttributes(mAttributeSet, R.styleable.ChipView, 0, 0);

            try {
                mChipSpacing = (int) typedArray.getDimension(R.styleable.ChipView_chip_spacing, mChipSpacing);
                mLineSpacing = (int) typedArray.getDimension(R.styleable.ChipView_chip_line_spacing, mLineSpacing);
                mChipPadding = (int) typedArray.getDimension(R.styleable.ChipView_chip_padding, mChipPadding);
                mChipSidePadding = (int) typedArray.getDimension(R.styleable.ChipView_chip_side_padding, mChipSidePadding);
                mChipCornerRadius = (int) typedArray.getDimension(R.styleable.ChipView_chip_corner_radius, mChipCornerRadius);
                mChipBackgroundColor = typedArray.getColor(R.styleable.ChipView_chip_background, mChipBackgroundColor);
                mChipBackgroundColorSelected = typedArray.getColor(R.styleable.ChipView_chip_background_selected, mChipBackgroundColorSelected);
                mChipBackgroundRes = typedArray.getResourceId(R.styleable.ChipView_chip_background_res, 0);
            } finally {
                typedArray.recycle();
            }
        }
    }

    public View getView(ViewGroup parent, int position) {
        View view = null;
        Chip chip = getChip(position);

        if (chip != null) {
            int chipLayoutRes = (getLayoutRes(position) != 0 ? getLayoutRes(position) : getChipLayoutRes());
            Drawable chipBackground = generateBackgroundSelector(position);

            if (chipLayoutRes == 0) {
                LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                layoutParams.setMargins(0, 0, mChipSpacing, mLineSpacing);
                view = new LinearLayout(mContext);
                view.setLayoutParams(layoutParams);
                ((LinearLayout) view).setOrientation(LinearLayout.HORIZONTAL);
                ((LinearLayout) view).setGravity(Gravity.CENTER_VERTICAL);
                view.setPadding(mChipSidePadding, mChipPadding, mChipSidePadding, mChipPadding);

                TextView text = new TextView(mContext);
                text.setId(android.R.id.text1);
                ((LinearLayout) view).addView(text);
            } else {
                view = mInflater.inflate(chipLayoutRes, parent, false);
                ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
                layoutParams.setMargins(layoutParams.leftMargin, layoutParams.topMargin, (layoutParams.rightMargin > 0 ? layoutParams.rightMargin : mChipSpacing), (layoutParams.bottomMargin > 0 ? layoutParams.bottomMargin : mLineSpacing));
            }

            if (view != null) {
                TextView text = (TextView) view.findViewById(android.R.id.text1);
                View content = view.findViewById(android.R.id.content);

                if (text != null) {
                    text.setText(chip.getText());
                    text.setGravity(Gravity.CENTER);

                    if (mChipTextSize > 0)
                        text.setTextSize(TypedValue.COMPLEX_UNIT_SP, mChipTextSize);
                }

                if (mHasBackground) {
                    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
                        if (content != null)
                            content.setBackgroundDrawable(chipBackground);
                        else
                            view.setBackgroundDrawable(chipBackground);
                    } else {
                        if (content != null)
                            content.setBackground(chipBackground);
                        else
                            view.setBackground(chipBackground);
                    }
                }

                onLayout(view, position);
            }
        }

        return view;
    }

    private Drawable generateBackgroundSelector(int position) {
        if (getBackgroundRes(position) != 0)
            return mContext.getResources().getDrawable(getBackgroundRes(position));
        else if (mChipBackgroundRes != 0) {
            return mContext.getResources().getDrawable(mChipBackgroundRes);
        }

        int backgroundColor = (getBackgroundColor(position) != 0 ? getBackgroundColor(position) : mChipBackgroundColor);
        int backgroundColorSelected = (getBackgroundColorSelected(position) != 0 ? getBackgroundColorSelected(position) : mChipBackgroundColorSelected);

        // Default state
        GradientDrawable background = new GradientDrawable();
        background.setShape(GradientDrawable.RECTANGLE);
        background.setCornerRadius(mChipCornerRadius);
        background.setColor(backgroundColor);

        // Selected state
        GradientDrawable selectedBackground = new GradientDrawable();
        selectedBackground.setShape(GradientDrawable.RECTANGLE);
        selectedBackground.setCornerRadius(mChipCornerRadius);
        selectedBackground.setColor(backgroundColorSelected);

        StateListDrawable stateListDrawable = new StateListDrawable();
        stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, selectedBackground);
        stateListDrawable.addState(new int[]{android.R.attr.state_focused}, selectedBackground);
        stateListDrawable.addState(StateSet.WILD_CARD, background);

        return stateListDrawable;
    }

    private void notifyUpdate() {
        setChanged();
        notifyObservers();
    }

    public Chip getChip(int position) {
        return (position < count() ? mChipList.get(position) : null);
    }

    /**
     * Wrapper to add a Chip
     *
     * @param chip
     */
    public void add(Chip chip) {
        if (!mChipList.contains(chip) || mToleratingDuplicate) {
            mChipList.add(chip);
            notifyUpdate();
        }
    }

    /**
     * Wrapper to remove a Chip
     *
     * @param chip
     */
    public void remove(Chip chip) {
        mChipList.remove(chip);
        notifyUpdate();
    }

    /**
     * How many Chip do we have
     *
     * @return int
     */
    public int count() {
        return mChipList.size();
    }

    protected int getColor(@ColorRes int colorRes) {
        return mContext.getResources().getColor(colorRes);
    }

    public Context getContext() {
        return mContext;
    }

    public AttributeSet getAttributeSet() {
        return mAttributeSet;
    }

    public void setAttributeSet(AttributeSet attributeSet) {
        mAttributeSet = attributeSet;
        init();
    }

    public List<Chip> getChipList() {
        return mChipList;
    }

    public void setChipList(List<Chip> chipList) {
        mChipList = chipList;
        notifyUpdate();
    }

    public boolean isToleratingDuplicate() {
        return mToleratingDuplicate;
    }

    /**
     * Set whether or not ChipTextView tolerate duplicate Chip
     *
     * @param toleratingDuplicate
     */
    public void setToleratingDuplicate(boolean toleratingDuplicate) {
        mToleratingDuplicate = toleratingDuplicate;
    }

    public boolean hasBackground() {
        return mHasBackground;
    }

    public void setHasBackground(boolean hasBackground) {
        mHasBackground = hasBackground;
    }

    public int getChipSpacing() {
        return mChipSpacing;
    }

    public void setChipSpacing(int chipSpacing) {
        mChipSpacing = chipSpacing;
    }

    public int getLineSpacing() {
        return mLineSpacing;
    }

    public void setLineSpacing(int lineSpacing) {
        mLineSpacing = lineSpacing;
    }

    public int getChipPadding() {
        return mChipPadding;
    }

    public void setChipPadding(int chipPadding) {
        mChipPadding = chipPadding;
    }

    public int getChipSidePadding() {
        return mChipSidePadding;
    }

    public void setChipSidePadding(int chipSidePadding) {
        mChipSidePadding = chipSidePadding;
    }

    public int getChipCornerRadius() {
        return mChipCornerRadius;
    }

    public void setChipCornerRadius(int chipCornerRadius) {
        mChipCornerRadius = chipCornerRadius;
    }

    public int getChipBackgroundColor() {
        return mChipBackgroundColor;
    }

    public void setChipBackgroundColor(@ColorInt int chipBackgroundColor) {
        mChipBackgroundColor = chipBackgroundColor;
    }

    public int getChipBackgroundColorSelected() {
        return mChipBackgroundColorSelected;
    }

    public void setChipBackgroundColorSelected(@ColorInt int chipBackgroundColorSelected) {
        mChipBackgroundColorSelected = chipBackgroundColorSelected;
    }

    public int getChipTextSize() {
        return mChipTextSize;
    }

    public void setChipTextSize(int chipTextSize) {
        mChipTextSize = chipTextSize;
    }

    /**
     * Set overall Chip background color by res id
     * Can be fine tuned by overriding @see com.scanners.android.bao.view.ChipTextView.Chip#getBackgroundRes
     *
     * @param backgroundRes
     */
    public void setChipBackgroundRes(@DrawableRes int backgroundRes) {
        mChipBackgroundRes = backgroundRes;
    }

    public int getChipLayoutRes() {
        return mChipRes;
    }

    /**
     * Set overall Chip layout by res id
     * Can be fine tuned by overriding @see com.scanners.android.bao.view.ChipTextView.Chip#getLayoutRes
     */
    public void setChipLayoutRes(@LayoutRes int chipRes) {
        mChipRes = chipRes;
    }
}

1 个答案:

答案 0 :(得分:1)

com.example.caesar.library.ChipViewAdapter.getColor(ChipViewAdapter.java:253)

罪魁祸首就是这条线。仔细检查资源中的颜色。你通过Gradle导入库吗?或者只是复制粘贴一些没有资源的类?