2

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

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

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

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

有任何想法吗?

谢谢

4

1 回答 1

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

(编辑为原始的第一行在代码格式上被破坏。

于 2010-12-03T11:43:51.930 回答