آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کار با فرگمنت و ویوپیجر

mahdi  8 سال پیش  8 سال پیش
+1 0

ببین من چندتا رادیو دارم توی یه فرگمنت

View view = (ScrollView) inflater.inflate(R.layout.fragment1_layout, container, false);

rb_one = (RadioButton) view.findViewById(R.id.rb_one);

rb_two = (RadioButton) view.findViewById(R.id.rb_two);

که 10 تا صفحه از این فرگمنت رو تو یه ویوپیجر دارم

تو فرگمنت این کد رو برای تغییر رنگ رادیو دارم

 

if (a == true)

{

rb_four.setBackgroundColor(Color.GREEN);

 

 

 else

{

rb_one.setBackgroundColor(Color.RED);

}

ولی بعد از تغییر رنگ یکی از رادیو ها در پیج اول بعد از اینکه به صفحه های دیگه ویو پیجر میرم رادیو های دیگه هم رنگی شده

0 0
لینک (8 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Hajhosseini  8 سال پیش
+2 0

اینجا همه چیز زیره سره اون متغیره a هست. اونو نباید استاتیک تعریف کنید. برای فهمیدن چرایی این مشکلات، بهترین راه دیباگ کردنه. شما روی شرط pointer بذارید و توی هر فرگمنت چک کنید که آیا متغیر a مقدار صحیحی داره یا خیر

0 0
آخه اصلا این شرط زمانی اجرا میشه که روی یک رادیو کلیک بشه.ولی من فقط روی یکی از رادیوها توی فرگمنت اولی کلیک میکنم بعد که به فرگمنت های دیگه میرم رادیوهای داخل اونا هم قبل از کلیک تغییر رنگ پیدا کردند یعنی اصلا قبل از اینکه این شرط چک بشه (8 سال پیش)
0 0
یه سوال دیگه اگه بخوایم تو خود فرگمنت بفهمیم که چه زمانی از یه صفحه به یه صفحه دیگه رفتیم بدون استفاده از رویداد در ویوپیجر ازچه رویدادی در فرگمنت باید استفاده کنیم؟ (8 سال پیش)
0 0
با توجه به حرفاتون امکانش هست که از آداپتر باشه مشکل. باید فرگمنتی که میسازید رو new کنید، اگر این کارو میکنید که مشکلی نیست، ولی اگر دارید از یک فرگمنت استاتیک استفاده میکنید احتمالش هست که ازین اتفاقا بیوفته. سوال دوم: میتونید توی متدهای onCreate, onViewCreated, onCreateView بفهمید، ولی آداپتر ویوپیجرتون نباید FragmentStatePagerAdapter باشه. (8 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .