常用输入输出语句
Common input and output statements
在我的应用程序中,我有两个按钮。我正在输入并根据单击哪个按钮显示输出。但是,为此,我必须在每个按钮的 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 = Double.parseDouble(inputString.getText().toString());
output() 是:outputString.setText(String.valueOf(output));
input
和 output
是 double
并且已经定义。
输出是通过简单的算术 process1()
和 process2()
从输入计算得出的。
inputString
是 EditText
,outputString
是 TextView
。
不确定是否值得这么麻烦,但您可以创建一个实现 OnClickListener
的抽象 class BaseListener
。它的 onClick
方法如下所示:
public void onClick(View arg1)
{
input();
process();
output();
}
process()
将是一个抽象方法。
每个 Button 都有一个扩展 BaseListener
并实现 process()
.
的侦听器
例如:
Button1.setOnClickListener(new BaseListener () {
protected void process() {
process1();
}
});
不是最好的方法,但是你可以提取一个方法:
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);
}
});
这可以通过多种方式完成...方法是这样的。
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();
}
};
在我的应用程序中,我有两个按钮。我正在输入并根据单击哪个按钮显示输出。但是,为此,我必须在每个按钮的 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 = Double.parseDouble(inputString.getText().toString());
output() 是:outputString.setText(String.valueOf(output));
input
和 output
是 double
并且已经定义。
输出是通过简单的算术 process1()
和 process2()
从输入计算得出的。
inputString
是 EditText
,outputString
是 TextView
。
不确定是否值得这么麻烦,但您可以创建一个实现 OnClickListener
的抽象 class BaseListener
。它的 onClick
方法如下所示:
public void onClick(View arg1)
{
input();
process();
output();
}
process()
将是一个抽象方法。
每个 Button 都有一个扩展 BaseListener
并实现 process()
.
例如:
Button1.setOnClickListener(new BaseListener () {
protected void process() {
process1();
}
});
不是最好的方法,但是你可以提取一个方法:
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);
}
});
这可以通过多种方式完成...方法是这样的。
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();
}
};