سؤال

حصلت على 4 نشاطات تتضمن جميعها XML-Footer التي تحتوي على 4 أزرار (واحدة لكل نشاط). أود الآن إعداد OnClickListeners إلى هذه الأزرار (إنها قائمة ذاتية المصنوعة في تذييل).

والسؤال هو ، كيف يمكنني استخدام المستمعين حتى أتمكن من إعادة استخدام التعليمات البرمجية؟ لدي فكرتان:

  1. قم بإنشاء فئة تنفذ OnClickListener وفي كل نشاط ، سأحصل على الأزرار ثم إنشاء مثيل جديد لفئة المستمع و button. حدث؟ وكيف أقوم بإنشاء نية لبدء نشاط ، عادةً ما سأفعله: النية النية = نية جديدة (من النشاط. هذا ، tacitivty.class) ولكن ليس لدي الإشارة إلى النشاط.

  2. قم بإنشاء فئة أساسية تمتد من النشاط ثم تمتد التنشيطات الأربعة من الفئة الأساسية. أود بعد ذلك إعداد المستمعين في الفصل الأساسي. المشكلة هنا هي أنه لا يمكنني الحصول على الإشارات إلى الأزرار عن طريق القيام بزر الزر 1 = (الزر) FindViewById (r.id.menu_button1) ؛ Button1 سيكون فارغًا. لم أدعو حتى seteventview لأن هذا يجب أن يتم في النشاط وليس في الفئة الأساسية.

أيه أفكار؟

شكرًا لك

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

المحلول

نفس الرمز هنا:

    public class MyClass extends Activity implements View.OnClickListener{
        btnA=(Button)findViewById(R.id.btnA);
        btnA.setOnClickListener(this);
        btnB=(Button)findViewById(R.id.btnB);
        btnB.setOnClickListener(this);


    }
    @Override
    public void onClick(View v)
    {
        Button clickedButton = (Button) v;
        switch (clickedButton.getId())
        {
            case R.id.btnA:
                Intent regIntent = new Intent(Home.this,Registration.class);
                startActivityIfNeeded(regIntent, 1);
                break;
            case R.id.btnB:
                //Some code
                break;
        }
    }

(تم تحريره على أنه السطر الأول الأصلي يتم كسره على تنسيق الكود.

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