在Java中,如何使用继承简化代码? (Android开发.)

在各种活动中,我都有非常相似的方法.

例如:

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.ibHome:
        Intent menuIntent = new Intent(v.getContext(),Menu.class);
        startActivity(menuIntent);
        break;
    }

}

@Override
public void onClick(View v) {
     /**  */

    //
    switch(v.getId()){
        case R.id.bNew:
            Intent newSwimmerIntent = new Intent(v.getContext(),NewSwimmer.class);
            startActivity(newSwimmerIntent);
            break;
case R.id.ibHome:
            Intent menuIntent = new Intent(v.getContext(),Menu.class);
            startActivity(menuIntent);
            break;

有没有一种方法(我假设将使用继承)来防止menuIntent在每个类中明确声明?

谢谢.

解决方法:

您可以使用继承,但实际上可能不是最佳选择,特别是如果两个活动不是直接以“ Is-A”关系关联的话.

在这种情况下,最好声明一个实现OnClickListener接口的新类.然后,您可以实例化该类,并将其绑定到按钮的单击事件,无论它们在何处使用.

这是一个例子:

public class HomeButtonHandler implements OnClickListener{

        @Override
        public void onClick(View v) {
            Intent menuIntent = new Intent(v.getContext(),Menu.class);
            v.getContext().startActivity(menuIntent);            

        }

    }

在您的活动中,您可以将HomeButtonHandler绑定到按钮的onClickListner上:

homeButton.setOnClickListener(new HomeButtonHandler());
上一篇:大前端EMlog博客微信小程序Brief源码 v1.1


下一篇:关于git CRLF LF结尾的问题