111
逻辑部分2:
*1:onClick(View 巴拉巴拉)
@Override
public void onClick(View view){
switch (view.getId()){
//C & CE
case R.id.buttonC:
String myStr=textView.getText().toString();
try{
textView.setText(myStr.substring(0,myStr.length()-1));
}catch (Exception e){
textView.setText("");
}
break;
case R.id.buttonCE:
textView.setText(null);
break;
//0~9
case R.id.button0:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString=textView.getText().toString();
myString+="0";
textView.setText(myString);
break;
case R.id.button1:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString1=textView.getText().toString();
myString1+="1";
textView.setText(myString1);
break;
case R.id.button2:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString2=textView.getText().toString();
myString2+="2";
textView.setText(myString2);
break;
case R.id.button3:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString3=textView.getText().toString();
myString3+="3";
textView.setText(myString3);
break;
case R.id.button4:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString4=textView.getText().toString();
myString4+="4";
textView.setText(myString4);
break;
case R.id.button5:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString5=textView.getText().toString();
myString5+="5";
textView.setText(myString5);
break;
case R.id.button6:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString6=textView.getText().toString();
myString6+="6";
textView.setText(myString6);
break;
case R.id.button7:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString7=textView.getText().toString();
myString7+="7";
textView.setText(myString7);
break;
case R.id.button8:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString8=textView.getText().toString();
myString8+="8";
textView.setText(myString8);
break;
case R.id.button9:
if(isClickEqu)
{
textView.setText(null);
isClickEqu=false;
}
String myString9=textView.getText().toString();
myString9+="9";
textView.setText(myString9);
break;
//+ - * / =
case R.id.buttonJIA:
String myStringJIA=textView.getText().toString();
if(myStringJIA.equals(null))
{
return;
}
num1=Double.valueOf(myStringJIA);
textView.setText(null);
op=1;
isClickEqu=false;
break;
case R.id.buttonJIAN:
String myStringJIAN=textView.getText().toString();
if(myStringJIAN.equals(null))
{
return;
}
num1=Double.valueOf(myStringJIAN);
textView.setText(null);
op=2;
isClickEqu=false;
break;
case R.id.buttonCHENG:
String myStringCHEN=textView.getText().toString();
if(myStringCHEN.equals(null))
{
return;
}
num1=Double.valueOf(myStringCHEN);
textView.setText(null);
op=3;
isClickEqu=false;
break;
case R.id.buttonCHU:
String myStringCHU=textView.getText().toString();
if(myStringCHU.equals(null))
{
return;
}
num1=Double.valueOf(myStringCHU);
textView.setText(null);
op=4;
isClickEqu=false;
break;
case R.id.buttonDENGYU:
String myStringDENGYU=textView.getText().toString();
if(myStringDENGYU.equals(null))
{
return;
}
num2=Double.valueOf(myStringDENGYU);
textView.setText(null);
switch (op) {
case 0:
Result=num2;
break;
case 1:
Result=num1+num2;
break;
case 2:
Result=num1-num2;
break;
case 3:
Result=num1*num2;
break;
case 4:
Result=num1/num2;
break;
default:
Result=0;
break;
}
textView.setText(String.valueOf(Result));
isClickEqu=true;
break;
default:
break;
}
}
}
这段代码 使用了 switch case结构 case对应了计算器的每个按钮功能 把这些按钮的功能一一对应。
C功能;用try catch处理异常 可以说是这么写是比较逻辑缜密的写法
try{ textView.setText(myStr.substring(0,myStr.length()-1)); }catch (Exception e){ textView.setText(""); }关于substring函数的解释(就是获取长度)
sb.Substring(0, sb.Length - 1);这个是截取字符串的方法,后面第一个参数0代表,从字符串的第一个字符开始截取,后面一个参数sb.Length - 1代表截取的字符串长度,也就是从第一个字符截取到最后一个字符前一位。
0~9功能:
比较在意的是.getText().tostring的用法 在网上查的解释在这里
最佳答案:
这个方法是获取一个视图View对象里的字符串的方法的,比如你要验证一个Edittext里输入的是不是纯数字,就用这个方法来获取输入的字符串,然后进行验证
setText() 把以前的内容冲掉了,
append()在以前的内容后面添加。
这个区别应该很好理解。
如果原来字域的内容为空,则这两个方法的作用一样。
String myString=textView.getText().toString(); myString+="0"; textView.setText(myString); break;
总体来说根据代码套路就是这样的
用上述代码在一个文本框里加入文字