سؤال

أنا جديد في تطوير Android.أريد أن يكون لكل نشاط نفس القائمة المنبثقة المخصصة في الجزء العلوي الأيمن.أستخدم LinearLayout في xxmenu.xml وإدراجه في ملفات xml لتخطيط كل نشاط.العرض على ما يرام.كما OnClickListener يجب أن يكون هو نفسه، لا أريد تنفيذ OnClick وظائف في ملف جافا لكل نشاط.كيف يمكنني أن أفعل هذا؟

أعلم أن Android لديه حل قائمة متأصل عبر OptionsMenu, ، لكنني لا أعرف ما إذا كان من الممكن تخصيصه أو كيف (على سبيل المثال، أريده في الزاوية العلوية، بخلفيات مختلفة، ولكل عنصر رمز صورة متبوعًا texts, one-side shadow, ، إلخ.)

هل كانت مفيدة؟

المحلول 2

أولاً، الحل هو تحديد فئة أساسية (على سبيل المثال، BaseActivity) لتوسيع Activity, والأنشطة الفعلية التي تستخدم هذه القائمة للتوسيع BaseActivity (على سبيل المثال، MainActivity extends BaseActivity).

ثانيًا، استخدم ملف XML منفصلاً لتحديد تخطيط القائمة وإدراجه في تخطيطات أخرى.هناك طريقة بسيطة لربط المستمعين وهي الاستخدام android:onClick="toggleMenu".

ثالثا، التنفيذ public void toggleMenu(View v) في النشاط الأساسي.

يمكننا أيضًا استدعاء طرق العرض وإجراء الارتباطات في كود Java.لكنني واجهت مشكلة في تسلسل التعليمات البرمجية إذا حصلت على العرض القابل للنقر عبره findViewById في BaseActivityonCreate(), ، يعود null, ، ويفشل الربط.لذلك يجب أن يتم العثور على وجهات النظر والارتباطات التالية في الفصول الفرعية (على سبيل المثال، MainActivity)، بعد الاتصال super.onCreate().

نصائح أخرى

أنشئ فئة BaseActivity مجردة يتم تنفيذها onCreateOptionsMenu و onOptionsItemSelected لقائمتك وعناصر القائمة المشتركة.ثم اجعل جميع أنشطتك الأخرى تمتد من ذلك النشاط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top