এখানে প্রস্তাবিত উত্তর অ্যান্ড্রয়েড 5.0-তে সঠিকভাবে কাজ করে না যদি আপনার এক্সএমএল ভিত্তিক রঙের রাজ্যের তালিকা থিমযুক্ত বৈশিষ্ট্যগুলি উল্লেখ করে ... উদাহরণস্বরূপ, আমার মতো একটি এক্সএমএল রঙের রাজ্যের তালিকা রয়েছে:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?colorPrimary" android:state_enabled="true"/>
<item android:alpha="0.12" android:color="?attr/colorOnSurface"/>
</selector>
এক্সএমএল থেকে আমার পটভূমি হিসাবে এটি ব্যবহার করা অ্যান্ড্রয়েড 5.0 এবং অন্য কিছুর জন্য ঠিক কাজ করে just তবে আমি যদি কোডের মতো এটিকে সেট করার চেষ্টা করি:
(এটি করবেন না)
myButton.setSupportButtonTintList(ContextCompat.getColorStateList(myButton.getContext(), R.color.btn_tint_primary));
আমি ক্রিয়াকলাপ বা কনটেক্সট কমপ্যাট.জেট কালার স্টেটলিস্ট () পদ্ধতিতে বাটনের প্রসঙ্গটি পাস করি তা আসলে কিছু যায় আসে না, তবুও আমাকে বাটনটির মধ্যে থাকা থিমের সাথে সঠিক রঙের রাজ্য তালিকা দেবে না। রঙিন রাজ্যের তালিকায় থিম বৈশিষ্ট্যগুলি ব্যবহার করা এপিআই 23 অবধি সমর্থন করা হয়নি এবং কনটেক্সট কমপ্যাট এগুলি সমাধান করার জন্য বিশেষ কিছু করে না This পরিবর্তে আপনাকে অবশ্যই অ্যাপকোম্প্যাটআরসোস.জেট কালার স্টেটলিস্ট () ব্যবহার করতে হবে যা ডিভাইসের <API 23 এর নিজস্ব রিসোর্স পার্সিং / থিম অ্যাট্রিবিউট রেজোলিউশন করে।
পরিবর্তে, আপনি এটি ব্যবহার করতে হবে:
myButton.setSupportBackgroundTintList(AppCompatResources.getColorStateList(myButton.getContext(), R.color.btn_tint_primary));
টিএলডিআর: অ্যান্ড্রয়েডের সমস্ত এপিআই সংস্করণ জুড়ে থিমযুক্ত সংস্থানগুলি সমাধান করার দরকার হলে অ্যাপকম্প্যাটআরসোর্সগুলি ব্যবহার করুন এবং কনটেক্সটকম্প্যাট নয়।
বিষয়ে আরও তথ্যের জন্য, এই নিবন্ধটি দেখুন ।