违规用户 2017-08-03 15:05 采纳率: 50%
浏览 683

百分号怎么实现,求大手指导,网上的案例都试过了

代码如下:

public class MainActivity extends Activity implements View.OnClickListener {
/*
利用数组装变量,并创建button数组存放相应的变量
*/
private int[] btn = {R.id.zero, R.id.one, R.id.two, R.id.three, R.id.four, R.id.five, R.id.six, R.id.seven, R.id.eight, R.id.nine};
private Button[] bnum = new Button[btn.length];
private int[] takes = {R.id.jia, R.id.jian, R.id.cheng, R.id.chu};
private Button[] take = new Button[takes.length];
private int[] btc = {R.id.dot, R.id.zf, R.id.xc, R.id.qc, R.id.tg, R.id.bai, R.id.lf, R.id.pf, R.id.fen, R.id.sum};
private Button[] btcl = new Button[btc.length];
private EditText editText;
boolean clear_flag; //用于:当已经运算出结果的时候,我们再次点击数字按钮的时候,清空屏幕的作用!
private String opt; //加减乘除通用变量
double num1, num2; //第一个值,第二个值

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //获取输入框
    editText = (EditText) findViewById(R.id.edittext);
    //输入框复制空字符串
    editText.setText("");
    //输入框不能够输入,只能接收按钮点击事件
    editText.setEnabled(false);
    //利用循环遍历给每个button分类进行实例化并实现OnClickListener接口
    for (int i = 0; i < btn.length; i++) {
        bnum[i] = (Button) findViewById(btn[i]);
        bnum[i].setOnClickListener(this);
    }
    for (int i = 0; i < takes.length; i++) {
        take[i] = (Button) findViewById(takes[i]);
        take[i].setOnClickListener(this);
    }
    for (int i = 0; i < btc.length; i++) {
        btcl[i] = (Button) findViewById(btc[i]);
        btcl[i].setOnClickListener(this);
    }

}

@Override
public void onClick(View v) {
    String str = editText.getText().toString();     //获取当前edittext的内容
    //利用switch多分支语句
    switch (v.getId()) {
        case R.id.zero:
        case R.id.one:
        case R.id.two:
        case R.id.three:
        case R.id.four:
        case R.id.five:
        case R.id.six:
        case R.id.seven:
        case R.id.eight:
        case R.id.nine:
        case R.id.dot:
            if (clear_flag) {
                clear_flag = false;
                str = "";
                editText.setText("");
            }
            editText.setText(str + ((Button) v).getText());
            break;
        //加法
        case R.id.jia: {
            if (!TextUtils.isEmpty(str)) {
                String str1 = editText.getText().toString();
                num1 = Double.parseDouble(str1);
                opt = "+";
                editText.setText(opt);
                break;
            }

        }
        //减法
        case R.id.jian: {
            if (!TextUtils.isEmpty(str)) {
                String str1 = editText.getText().toString();
                num1 = Double.parseDouble(str1);
                opt = "-";
                editText.setText(opt);
                break;
            }
        }
        //乘法
        case R.id.cheng: {
            if (!TextUtils.isEmpty(str)) {
                String str1 = editText.getText().toString();
                num1 = Double.parseDouble(str1);
                opt = "*";
                editText.setText(opt);
                break;
            }
        }
        //除法
        case R.id.chu: {
            if (!TextUtils.isEmpty(str)) {
                String str1 = editText.getText().toString();
                num1 = Double.parseDouble(str1);
                opt = "/";
                editText.setText(opt);
                break;
            }
        }
        //消除 与清除一个功能
        case R.id.xc:
            clear_flag = false;
            editText.setText("");
            break;
        //退格键
        case R.id.tg:
            if (clear_flag) {
                clear_flag = false;
                editText.setText("");
            } else if (str != null && !str.equals("")) {
                editText.setText(str.substring(0, str.length() - 1));
            }

            break;
        //清除 与消除一个功能
        case R.id.qc:
            Toast toast = Toast.makeText(this, "与消除功能一样", Toast.LENGTH_SHORT);
            toast.show();
            //根计算
        case R.id.lf:
            if (!TextUtils.isEmpty(str)) {
                String str1 = editText.getText().toString();
                num1 = Double.parseDouble(str);
                if (num1 < 0) {
                    editText.setText("负数没有平方根");
                } else {
                    editText.setText(Math.sqrt(num1) + "");
                }
                break;

            }
            //正负计算
        case R.id.zf:
            if (!TextUtils.isEmpty(str)) {
                String str1 = editText.getText().toString();
                num1 = Double.parseDouble(str1);
                if (str.length() > 0)
                    editText.setText(-num1 + "");
                break;
            }
        case R.id.bai:
            if (!TextUtils.isEmpty(str)) {

            }
            //平方计算
        case R.id.pf:
            if (!TextUtils.isEmpty(str)) {
                String str1 = editText.getText().toString();
                num1 = Double.parseDouble(str1);
                editText.setText(String.valueOf(num1 * num1));
            }
            //  1/x计算
        case R.id.fen:
            if (!TextUtils.isEmpty(str)) {
                String str1 = editText.getText().toString();
                num1 = Double.parseDouble(str1);
                editText.setText(String.valueOf(1 / num1));
            }
        case R.id.sum:

              if (opt == "+") {
                  String str1 = editText.getText().toString();
                  num2 = Double.parseDouble(str);
                  editText.setText(String.valueOf(num1 + num2));
              } else if (opt == "-") {
                  String str1 = editText.getText().toString();  //获取输入框的值
                  str = str.substring(1);
                  num2 = Double.parseDouble(str);
                  editText.setText(String.valueOf(num1 - num2));
              } else if (opt == "*") {
                  String str1 = editText.getText().toString();
                  str = str.substring(1);
                  num2 = Double.parseDouble(str);
                  editText.setText(String.valueOf(num1 * num2));
              } else if (opt == "/") {
                  String str1 = editText.getText().toString();
                  str = str.substring(1);
                  num2 = Double.parseDouble(str);
                  editText.setText(String.valueOf(num1 / num2));
              }


            break;
    }
}

}

  • 写回答

1条回答 默认 最新

  • Tsui丶 2017-08-04 00:54
    关注

    百分号,你将得数扩大100倍加上“%”不就好了吗

    评论

报告相同问题?

悬赏问题

  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 spring后端vue前端
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题