فهم کد بسیار سادست ولی اگر جایی رو متوجه نشدین بگین که براتون توضیح بدم
میلاد عزیززاده۲۷ تیر ۱۴۰۰، ۰۹:۲۴
سلام و احترام
ممنون از پاسخ میلاد عزیز
همچنین شما میتوانید :
میتونید در مسیر res/values بیایید و یه فایل با نام مثلا array.xml بسازید سپس ابتدا رنگ هایی که میخواهید رو تعریف میکنید تا اونها رو به ارایه ای از رنگ هاتون اضافه کنید یعنی چی؟
بدین صورت که در کد بالا امدیم ابتدا رنگ هامون رو مشخص کردیم یعنی (bright,red,orange) و سپس اومدیم و ارایه ای ساختیم و نام اون رو برابر مثلا rainbow قرار دادیم و در این ارایه رنگ هایی که خواستیم به عنوان عضوی از این ارایه اضافه کردیم پس تا اینجا توانستیم ارایه ای از رنگها رو بسازیم.
حال برای گرفتن این ارایه در کد جاوا لازم هست ارایه ای بسازید و اون ارایه رو از R.array بخوانید :
(نکته : R به معنای Resources هست که میرود در res و جایی که فایل ما با نام array هست رو پیدا میکند چون گفتیم R.array)
در اینجا شما میتونید روی ویو مد نظرتون متد زیر رو صدا بزنید و رنگ مربوطه رو ست کنید
setColor(rainbow[1]);
OR
setBackground(rainbow[2])
حال شما لازم هست مقادیر موجود در این ارایه رو بگیرید(مثلا حلقه بزنید یا ایندکس خاصی از اون رو واکشی کنید)
البته در ادامه راجب تمام این موارد صحبت شده پس نگران باشید و جلسات رو ادامه بدید و در حد همان جلسات اموزشها رو دنبال کنید هنگامی که دوره رو تمام کردید اگر موردی کم و کاست دیدید پیشنهاد بدید تا اضافه شود.
اینکه از همان ابتدا به دنبال یادگیری تمام مباحث باشید کمی در ادامه ممکن هست انرژی شما رو بگیره (این هم یه پیشنهاد بود از دید خودم به شما).
صحبت هاتون درست هست. منتهی من میخوام از این آرایه از رنگها در کلاس FragmentStateAdapter برای ViewPager استفاده کنم. هدفم این هست که با یک حلقه for مقادیر متغیر هر fragment شامل title , description iconو رنگ هر fragment را از ارایههای تعریف شده در فایلهای xml دریافت کنم که با خطای FATAL EXCEPTION روبرو میشم. متد createFragmen از کلاس FragmentStateAdapter به صورت زیر تعریف کرده ام.
public Fragment createFragment(int position) {
String[] titles = context.getResources().getStringArray(R.array.titles);
String[] descriptions =context.getResources().getStringArray(R.array.descriptions);
int[] imageId ={R.drawable.ic_food ,R.drawable.ic_movie ,R.drawable.ic_discount ,R.drawable.ic_travel,R.drawable.ic_hotel};
int[] bgColors = context.getResources().getIntArray(R.array.bgcolors);
for (int i = 0 ; i < 5; i++){
slideFragmentViewPager = SlideFragmentViewPager.newInstance (bgColors[position],imageId[position],titles[position],descriptions[position]);
}
return slideFragmentViewPager;
}