getActivity() مع FragmentActivity:ذكري المظهر
-
12-12-2019 - |
سؤال
أنا أستخدم هذه الفئة A التي تمتد إلى فئة مجردة أخرى (وتمتد هذه الفئة المجردة إلى FragmentActivity) وفي إحدى وظيفتي في الفصل A أريد الحصول على getActivity() لنشاطي الحالي A.ولكن عندما أستخدم getActivity، يظهر لي خطأ أن طريقة getActivity() ليست نوعًا محددًا لفصلي.الرجاء مساعدتي !!كيف يمكنني تحقيق ذلك؟؟
الكود الخاص بصفي أ
public class A extends B
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.voicing);
//doing another initializations and stuff//
}
}
كود للفئة ب
public abstract class B extends FragmentActivity
{
FragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
}
المحلول
أ FragmentActivity
هو مثال على Activity
(بأسلوب جافا: FragmentActivity extends Activity
).
لذلك ليس هناك نقطة الدعوة getActivity
لأن أ FragmentActivity
هو بالفعل Acivity
, ، لذا فقط اتصل/استخدم this
سيعمل.كما لا توجد طريقة تسمى getActivity
في ال FragmentActivity
فصل.وبعبارة أخرى، فإن فصلك B يمتد Activity
مثال.
لذا، داخل الفصل A (أو B) الخاص بك، يمكنك استخدام مقتطف الكود هذا للحصول على مثيل النشاط:
Activity test = (Activity) this;
ولكن إذا امتدت فئة B الخاصة بك Fragment
ثم getActivity
كان من الممكن أن تنجح المكالمة.
نصائح أخرى
FragmentActivity
هو بديل ل Activity
في حزمة الدعم.منذ الخاص بك class B
يمتد FragmentActivity
وبعد ذلك الخاص بك class A
يمتد class B
, ، لذلك الخاص بك class A
ويشير أيضا Activity
(الملقب ب FragmentActivity
).
باختصار، لا تحتاج إلى استدعاء أي طريقة.ببساطة استخدم this
الكلمة الأساسية للإشارة إلى مثيل نشاطك.