简体   繁体   English

如何仅启动活动设置一个onclicklistener

[英]how to launch activity setting only one onclicklistener

So i have this code and i want to avoid setting the onclicklistener method for every button i have . 所以我有这段代码,我想避免为我拥有的每个按钮设置onclicklistener方法。 is there a way to avoid doing that ?? 有办法避免这样做吗?

        @Override
        public void onClick(View v) {
            Intent jus = new Intent (Home.this,jus.class);
            startActivity(jus);
        }

    });
    sweets.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            Intent sweets = new Intent (Home.this,sweets.class);
            startActivity(sweets);
        }

    });
    patisserie.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            Intent patisserie = new Intent (Home.this,patisserie.class);
            startActivity(patisserie);
        }

    });

Try this.. 尝试这个..

Your Activity must implements OnClickListener 您的活动必须implements OnClickListener

Inside OnCreate() 里面的OnCreate()

    sweets.setOnClickListener(this); 
    patisserie.setOnClickListener(this); 

then after OnCreate() 然后在OnCreate()

@Override
public void onClick(View v) { 

    switch(v.getId()){
       case R.id.sweetsbuttonid:
         // do stuff related sweets click
         break;
       case R.id.patisseriebuttonid:
         // do stuff related patisserie click
         break;
     }

}

You can make a class that implements OnClickListener that you can accept a Intent parameter to with pre-set activity. 您可以创建一个实现OnClickListener的类,该类可以通过预设活动接受Intent参数。 THat way the parameter activity will be started but the listeners will all be instances of the same parent. 通过这种方式可以启动参数活动,但是侦听器将都是同一父对象的实例。 No need to re-write code. 无需重新编写代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM