1、LineLayout布局控件宽度百分比显示
其中,宽度百分比 = 控件权重 / 所在parent中所有控件权重和
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" <Button android:layout_width="0dp" //宽度为0dp android:layout_height="fill_parent" android:layout_weight="1" //设置权重 android:text="1"/> </LinearLayout>
2、计算器回退键的实现
textView.setText(str.substring(0, str.length() - 1)); //在显示窗口设置为str字符串减一后子字符串
3、获取输入框字符串,根据内容实现加减乘除
private void getresult() { String exp=et_input.getText().toString(); //获取输入框字符串 if(exp==null||exp.equals("")) { return; } if(!exp.contains(" ")) //如果字符串不包换空格 { return; } double result=0; String s1=exp.substring(0,exp.indexOf(" ")); //String.indexOf(" ")获取String中第一个" "的位置,substring获取从0到indexOf位置的子字符串 String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2); String s2=exp.substring(exp.indexOf(" ")+3); //获取从第一个空格加三个字符位开始到exp最后一个字符位的子字符串 if(!s1.equals("")&&!s2.equals("")) { double d1= Double.parseDouble(s1); //将字符串转化为Double型 double d2 = Double.parseDouble(s2); //强制类型转换 if (op.equals("+")) { result = d1 + d2; } else if (op.equals("-")) { result = d1-d2; } else if (op.equals("×")) { result=d1*d2; } else if (op.equals("÷")) { if(d1==0) {result=0;}else result=d1/d2; } if(!s1.contains(".")&&!s2.contains(".")&&!op.equals("÷")){ int r = (int)result; et_input.setText(r + ""); //数字加空字符串组成新的字符串 } else {et_input.setText(result + "");} }else if(!s1.equals("")&&s2.equals("")) { et_input.setText(exp); }else if(s1.equals("")&&!s2.equals("")) { double d2= Double.parseDouble(s2); if (op.equals("+")) { result = 0 + d2; } else if (op.equals("-")) { result = 0 - d2; } else if (op.equals("×")) { result=0*d2; } else if (op.equals("÷")) { result=0; } et_input.setText(result + ""); } else { et_input.setText(""); } }