如何从另一个类中的方法调用方法?

时间:2016-02-21 17:09:37

标签: android

当我创建一个Android应用程序时,我在一个单独的类中使用switch语句来处理多个按钮的行为。当我单击一个按钮时,如何从另一个类中检测到按下了哪个按钮?

另一个类不是活动类。任何人都可以评论下面的代码,所以我将更好地了解如何正确实现这一点。

我在A班的第一个方法是

 public void onClick(View v){
    switch (v.getId()){
                case R.id.button1 :
                    GifView.mymethod(R.id.button1);
                final Dialog dialog1=new Dialog(context);
                dialog1.setContentView(R.layout.dialog);

                Button finish1= (Button) dialog1.findViewById(R.id.finish);
                finish1.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog1.dismiss();
                    }
                });
                dialog1.show();
                    break;

我想将此按钮ID传递给另一个类,该类具有处理所有按钮点击的业务逻辑。

private void init(Context context) {
    switch(?????){
        case R.id.button1:
            setFocusable(true);
            gifInputStream = getResources().openRawResource(R.drawable.hen);

            gifMovie = Movie.decodeStream(gifInputStream);
            movieWidth = gifMovie.width();
            movieHeight = gifMovie.height();
            movieDuration = gifMovie.duration();
            break;

我可以在switch语句中做些什么?

public static int mymethod(int id) {
    int buttonId=id;
    return buttonId;
}

1 个答案:

答案 0 :(得分:-1)

您可以拥有一个公共静态全局变量,然后在您的交换机内部执行以下操作:

public static int buttonClicked = 0;

...

switch(id){

  case R.id.button1:
    //doWhatever()
    buttonClicked = R.id.button1;
    break;
  more cases:
  break;
}

然后,如果您愿意,可以为buttonClicked创建一个getter方法,这样您就可以随时从Activity外获取实际值。

这样你没有传递点击按钮的实际参考,这可能有问题,你只是传递了它的R.id。如果您这样做,您将无法修改您从Activty外部点击的按钮,但您将能够知道通过其R.id点击了哪个按钮。