Flutter Dev نشر 2 يونيو 2020 أرسل تقرير نشر 2 يونيو 2020 السلام عليكم ورحمة الله وبركاته انا استخدم ازار Bottom Navigation Bar في الصفحة الاساسيه لمشروعي لدي 3 ازار وكل زر مرتبط ب صفحة Fragment من خلال صفحة الادبتر التاليه : public class PageAdapter extends FragmentPagerAdapter { private int numOfTabs; PageAdapter(FragmentManager fm, int numOfTabs) { super(fm); this.numOfTabs = numOfTabs; } @Override public Fragment getItem(int position) { switch (position) { case 0: return new FragmentHome(); case 1: return new StatusFragment(); case 2: return new CallFragment(); default: return null; } } @Override public int getCount() { return numOfTabs; } } الان لدي مشكلة انا احتاج ان انتقال من خلال الزر الى صفحة activity وليس Fragment كل ما حاولت اكتب الكود الانتقال تظهر لي رسالة الخطاء التالي : في هذا الحالة كيف ممكن نعمل انتقال الى هذا الاكتفتي ؟هل يوجد حل بدون تحويل الاكتفتي الى صفحة Fregment? 1 اقتباس
1 Mohamd Imran نشر 2 يونيو 2020 أرسل تقرير نشر 2 يونيو 2020 @مروان مروان3 لم أنتنبه إلى الكلاس الخاص بك هنا extends FragmentPagerAdapter أعتقدت إنها تستخدم activity على كل حال لحل المشكلة new Intent() يتطلب context وليس Activity ,نقوم بتمرير الcontext إلى الPageAdapter هكذا PageAdapter(Context context,FragmentManager fm, int numOfTabs) { super(fm); this.mContext = context; this.numOfTabs = numOfTabs; } ونقوم بإستخدام ال context في ال intent هكذا Intent intent = new Intent(this.mContext, Home.class); 1 اقتباس
0 Hamada Sayed نشر 2 يونيو 2020 أرسل تقرير نشر 2 يونيو 2020 عليكم السلام ممكن تستخدم startActivity وreturn null 1 اقتباس
0 Flutter Dev نشر 2 يونيو 2020 الكاتب أرسل تقرير نشر 2 يونيو 2020 بتاريخ 30 دقائق مضت قال Hamada Sayed: عليكم السلام ممكن تستخدم startActivity وreturn null اذا كنت تقصد كالتالي اخي فهو لم ينجح startActivity(new Intent(PageAdapter.this, Home.class)); return null ; اقتباس
0 Mohamd Imran نشر 2 يونيو 2020 أرسل تقرير نشر 2 يونيو 2020 السلام عليكم أخي @مروان مروان3 الأمر بسيط ,يمكنك ذلك هكذا Intent i = new Intent(getActivity(), Home.class); startActivity(i); ((Activity) getActivity()).overridePendingTransition(0, 0); أو عمل فنكشن وإستدعائها مثال private void moveToNewActivity () { Intent i = new Intent(getActivity(), Home.class); startActivity(i); ((Activity) getActivity()).overridePendingTransition(0, 0); } 2 اقتباس
0 Flutter Dev نشر 2 يونيو 2020 الكاتب أرسل تقرير نشر 2 يونيو 2020 @Mohamd Imran ايضا لا يمكن عمل ذلك public class PageAdapter extends FragmentPagerAdapter { private int numOfTabs; PageAdapter(FragmentManager fm, int numOfTabs) { super(fm); this.numOfTabs = numOfTabs; } @Override public Fragment getItem(int position) { switch (position) { case 0: return new MHome(); case 1: Intent i = new Intent(getActivity(), Home.class); startActivity(i); ((Activity) getActivity()).overridePendingTransition(0, 0); // return new StatusFragment(); // startActivity(new Intent(PageAdapter.this, Home.class)); // return null ; case 2: return new CallFragment(); default: return null; } } @Override public int getCount() { return numOfTabs; } } 1 اقتباس
0 Mohamd Imran نشر 2 يونيو 2020 أرسل تقرير نشر 2 يونيو 2020 بتاريخ 1 دقيقة مضت قال مروان مروان3: ايضا لا يمكن عمل ذلك هل ظهر لديك خطأ ؟ 1 اقتباس
0 Flutter Dev نشر 2 يونيو 2020 الكاتب أرسل تقرير نشر 2 يونيو 2020 بتاريخ الآن قال Mohamd Imran: هل ظهر لديك خطأ ؟ نعم عزيزي مثل الصورة المرفقة اقتباس
0 Flutter Dev نشر 2 يونيو 2020 الكاتب أرسل تقرير نشر 2 يونيو 2020 @Mohamd Imran اصبح الكود الصفحة كالتالي public class PageAdapter extends FragmentPagerAdapter { private static Context mContext; private int numOfTabs; PageAdapter(Context context, FragmentManager fm, int numOfTabs) { super(fm); this.mContext = context; this.numOfTabs = numOfTabs; } @Override public Fragment getItem(int position) { switch (position) { case 0: return new MHome(); case 1: Intent intent = new Intent(this.mContext, Home.class); mContext. startActivity(intent); case 2: return new CallFragment(); default: return null; } } @Override public int getCount() { return numOfTabs; } } ولكن في الصفحة الاساسيه ظهر خطاء في السطر التالي pageAdapter = new PageAdapter(getSupportFragmentManager(), tabLayout.getTabCount()); الخطاء هو 'PageAdapter(android.content.Context, androidx.fragment.app.FragmentManager, int)' in 'com.example.myapplication.MainTable.PageAdapter' cannot be applied to '(androidx.fragment.app.FragmentManager, int)' بتحديد في كلمة getSupportFragmentManager() 1 اقتباس
0 Mohamd Imran نشر 2 يونيو 2020 أرسل تقرير نشر 2 يونيو 2020 بتاريخ منذ ساعة مضت قال مروان مروان3: بتحديد في كلمة getSupportFragmentManager() سبب الخطأ في إننا أضفنا context ل PageAdapter لكن في الصفحة الأخرى التي يظهر فيها الخطأ لم نمرر ال context هناك بما إننا نستخدم ال pageadapter هناك أيضا ,لحل المشكلة قم بتمرير الcontext في الصفحة التي يظهر فيها الخطأ هكذا pageAdapter = new PageAdapter(mContext,getSupportFragmentManager(), tabLayout.getTabCount()); اقتباس
0 Flutter Dev نشر 2 يونيو 2020 الكاتب أرسل تقرير نشر 2 يونيو 2020 @Mohamd Imran ربي يعطيك الف صحه وعافيه عزيزي 1 اقتباس
السؤال
Flutter Dev
السلام عليكم ورحمة الله وبركاته
انا استخدم ازار Bottom Navigation Bar في الصفحة الاساسيه لمشروعي
لدي 3 ازار وكل زر مرتبط ب صفحة Fragment من خلال صفحة الادبتر التاليه :
الان لدي مشكلة انا احتاج ان انتقال من خلال الزر الى صفحة activity وليس Fragment
كل ما حاولت اكتب الكود الانتقال تظهر لي رسالة الخطاء التالي :
في هذا الحالة كيف ممكن نعمل انتقال الى هذا الاكتفتي ؟هل يوجد حل بدون تحويل الاكتفتي الى صفحة Fregment?
10 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.