常见的输入和输出语句

时间:2015-01-08 10:00:50

标签: java android eclipse

在我的应用程序中,我有两个按钮。我正在输入并根据单击的按钮显示输出。但是,为此,我必须在每个按钮的OnClickListener()中编写输入和输出语句。这使得代码变得笨重。有什么办法可以编写常见的输入和输出语句。

我当前的代码看起来像这样。

Button1.setOnClickListener(new View.onClickListener() {
    public void onClick(View arg0) {
        input();
        process1();
        output();
    }
});

Button2.setOnClickListener(new View.onClickListener() {
    public void onClick(View arg1) {
        input();
        process2();
        output();
    }
});

我希望我的代码是这样的:

input();
Button1.setOnClickListener(new View.onClickListener() {
    public void onClick(View arg0) {
        process1();
    }
});

Button2.setOnClickListener(new View.onClickListener() {
    public void onClick(View arg1) {
        process2();
    }
});
output();

这可能吗?如果是,那怎么样?如果不是那么为什么?

谢谢!

修改:

input()是:input = Double.parseDouble(inputString.getText().toString());

output()是:outputString.setText(String.valueOf(output));

inputoutputdouble并已定义。

输出是通过简单的算术process1()process2()从输入计算得出的。

inputStringEditTextoutputStringTextView

3 个答案:

答案 0 :(得分:1)

不确定是否值得这么麻烦,但您可以创建一个实现BaseListener的抽象类OnClickListener。它的onClick方法看起来像这样:

public void onClick(View arg1) 
{
    input();
    process();
    output();
}

process()将是一种抽象方法。

每个Button都有一个扩展BaseListener并实现process()的侦听器。

例如:

Button1.setOnClickListener(new BaseListener () {
    protected void process() {
        process1();
    }
});

答案 1 :(得分:0)

不是最好的方法,但你可以提取一个方法:

void process(int btn) {
   input();
   if(btn == 1) process1();
   else if (btn == 2) process2();
   output();
}

并以这种方式称呼它:

Button1.setOnClickListener(new View.onClickListener() {
   public void onClick(View arg0) {
      process(1);
   }
});

Button2.setOnClickListener(new View.onClickListener() {
   public void onClick(View arg1) {
      process(2);
   }
});

答案 2 :(得分:0)

这可以通过多种方式完成......就像这样。

Button1.setOnClickListener(onClickListener);
Button2.setOnClickListener(onClickListener);
View.OnClickListener onClickListener = new OnClickListener() {

    @Override
    public void onClick(View view) {
        input();
        switch (view.getId()) {
        case R.id.button1:
            process1();
            output();
            break;
        case R.id.button2:
            process2();
            break;

        }
        output();
    }
};