【发布时间】:2015-12-23 00:26:01
【问题描述】:
对于一个个人项目,我正在制作一个可以从用户输入的字符串中解析正则表达式的计算器。
我现在的主要问题是,如果用户输入一些输入,比如 1 + 2 ,然后旋转设备,虽然我已经设法让我的程序在旋转后保留 1 + 2,但用户的任何其他输入将清除它并用下一个输入完全替换它。 因此,如果我输入 1 + 2,然后旋转设备,然后输入 + 4,设备将读取 + 4 而不是 1 + 2 + 4,就像我预期的那样。
这是我到目前为止的代码,提前感谢您的帮助:
public class MyCalculator extends Activity {
String displayStr = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_calculator);
Button btnClear = (Button) findViewById(R.id.btnClear);
btnClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayStr = "";
TextView et= (TextView) findViewById(R.id.display);
et.setText(displayStr);
}
});
}
public void enterDigit(View view){
TextView et = (TextView) findViewById(R.id.display);
Button button = (Button)view;
if(et.getText().toString().compareTo("Unable to Parse") == 0){
displayStr = (String) button.getText();
}
else{
displayStr += button.getText();
}
et.setText(displayStr);
}
public void enterOperation(View view){
TextView et = (TextView) findViewById(R.id.display);
Button button = (Button)view;
if(et.getText().toString().compareTo("Unable to Parse") == 0){
displayStr = (String) button.getText();
}
else{
displayStr += " " + button.getText() + " ";
}
et.setText(displayStr);
}
public void enterClick(View v){ //TBD error checking
String s = "";
TextView et = (TextView) findViewById(R.id.display);
s = et.getText().toString();
s = TestParser.parse(s);
et.setText(s);
displayStr= "";
}
}
【问题讨论】:
标签: android