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

مشکل در گرفتن تعداد ایتم های یک ریسایکلر ویو fragment A در fragment B

omidronaldoo  6 سال پیش  6 سال پیش
0 0

سلام من میخوام تعداد آیتم های یک recyclerview در فرگمنت یک رو در فرگمنت دو بگیرم.من وقتی میخوام از فرگمنت یک برم فرگمنت دو فرگمنت یک رو نمیبندم در واقع مخفیش میکنم و فرگمنت دو رو ظاهر میکنم.بعد اینکه یک سری کار ها رو در فرگمنت دو انجام دادم دوباره به فرگمنت یک برمیگردم و یک متد از فرگمنت یک رو در فرگمنت دو صدا میزنم و این متد میاد آیتم های recyclerview رو خالی میکنه اما با این ارور مواجه میشم کسی میدونه مشکل کجاست و چطور حل میشه

java.lang.NullPointerException: Attempt to invoke virtual method 'int divar.fishvardroid.com.divar.adapter.PersonRecyclerAdapter.getItemCount()' on a null object reference
        at divar.fishvardroid.com.divar.fragment.fragmentHome.somemethod(fragmentHome.java:278)
        at divar.fishvardroid.com.divar.activity.MainActivity.restartFragment(MainActivity.java:117)
        at divar.fishvardroid.com.divar.fragment.fragmentCategory$1.onClick(fragmentCategory.java:51)
        at android.view.View.performClick(View.java:5637)
        at android.view.View$PerformClick.run(View.java:22429)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

 کدایه من در فرگمنت 2

MainActivity activity = (MainActivity) getActivity();
final fragmentHome home =new fragmentHome();


activity.BottomNavigationView1.getMenu().findItem(R.id.nav_main).setChecked(true);



//ظاهر کردن فرگمنت یک
activity.showFragment(activity.fragmenthome);

//خالی کردن فرگمنت یک
home.somemethod();



متد نشان دادن فرگمنت در اکتیویتی
public void showFragment(Fragment fragment) {

fm.beginTransaction().hide(active).show(fragment).commit();
active = fragment;
}
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
FSR  6 سال پیش
+1 0

سلام

برای گرفتن تعداد آیتم ها شما میتونید دو تا ArrayList داخل کلاس G تعریف کنید بعدش ریساکلر ویو هارو از این ArrayList ها پر کنید هرموقع هم بخواید از هرکجا میتونید تعداد آیتم هارو از ArrayList بگیرید


خطایی هم که میده فک کنم این اتفاقات خیلی سریع رخ میده برای همین نمیتونه تعداد آیتم هارو ست کنه ریساکلر ویو

+1 0
recycler view درست کار میکنه من میخوام با یک کلیک از باتن فرکمنت دوم مقدار ریسایکلر ویو مخفی شده در فرگمنت اول صفر بشه یعنی خالی بشه اما با اینکه شش تا آیتم داره هر موقع سایزش رو میگیرم مقدارش رو خالی نشون میده (6 سال پیش)
+1 0
من وقتی بین فرگمنتا جا به جا میشم replace نمیکنم در واقع show و hide میکنم فرکمنتایه مورد نظرم رو.در واقع اول کاری یک نمونه از همشونو add میکنم یکیشونو show بقیشونو hide میکنم چون نمیخوام با جابه جایی بینشون reset بشن منظور منو میفهمین (6 سال پیش)
0 0
میتونی یه عکس از پروژت بدی ببینم میخوای چیکار کنی دقیقا که اینقد show و hide انجام میدی داخلش (6 سال پیش)

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