使用相同侦听器的几个活动

时间:2010-12-03 10:11:09

标签: android listener base-class

我有4个活动,其中包括一个xml-footer,其中包含4个按钮(每个活动一个)。 我现在想为这些按钮设置onclicklisteners(这是页脚中的自制菜单)。

问题是,如何使用侦听器以便我可以重用代码? 我有两个想法:

  1. 创建一个实现onclicklistener的类,在每个活动中我都会得到按钮然后创建一个新的侦听器类实例并执行button.setOnClickListener(onClickListener) 问题是在监听器类中,我如何检查哪个按钮称为事件? 我将如何创建一个开始活动的意图,通常我会这样做: Intent intent = new Intent(FromActivity.this,ToAcitivty.class) 但是我没有提到FromActivity。

  2. 创建一个从activity扩展的基类,然后4个活动将从基类扩展。然后我想在基类中设置监听器。这里的问题是我无法通过执行来获取对按钮的引用 按钮button1 =(按钮)findViewById(R.id.menu_button1); button1将为null。我甚至没有调用setEventView,因为这应该在不在基类中的活动中完成。

  3. 有什么想法吗?

    谢谢

1 个答案:

答案 0 :(得分:1)

相同的代码在这里:

    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;
        }
    }

(编辑为原始第一行代码格式。