private void caculate() {
if ("+".equals(operator)) {
et.setText(String.valueOf(Arith.add(oldText, operatorNumber)));
} else if ("-".equals(operator)) {
et.setText(String.valueOf(Arith.sub(oldText, operatorNumber)));
} else if ("*".equals(operator)) {
et.setText(String.valueOf(Arith.mul(oldText, operatorNumber)));
} else if ("梅".equals(operator)) {
if ("0".equals(operatorNumber)) {
clear("除数不能为0");
} else {
et.setText(String.valueOf(Arith.div(oldText, operatorNumber)));
}
}
}出错。string literal is not properly closed by a double-quote

解决方案 »

  1.   

    package com.lianghe.caculator;import android.app.Activity;
    import android.os.Bundle;
    import android.text.InputType;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnLongClickListener;
    import android.view.View.OnTouchListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;import com.lianghe.tools.Arith;public class CaculatorActivity extends Activity implements OnTouchListener,
    OnLongClickListener { private EditText et;
    private String operator = "";// 鎿嶄綔
    private String oldText = "";
    private boolean inputDone = true;
    private String operatorNumber = "";//鎿嶄綔鏁�
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    et = (EditText) findViewById(R.id.tv_result);
    Button delBtn = (Button) findViewById(R.id.btnDel);
    delBtn.setOnLongClickListener(this);
    et.setOnTouchListener(this);
    } public void onButtonClickHandler(View view) {
    Button button = (Button) view;
    if ("CLEAR".equals(button.getText())) {
    String s = String.valueOf(et.getText());
    if (s.length() > 0) {
    if (s.length() == 1) {
    clear("0");
    } else {
    et.setText(s.subSequence(0, s.length() - s.length()));
    }
    operatorNumber = et.getText().toString();
    }
    } else if ("+".equals(button.getText()) || "-".equals(button.getText())
    || "*".equals(button.getText()) || "梅".equals(button.getText())
    || "=".equals(button.getText())) {
    caculate();// 璁$畻
    operator = button.getText().toString();// 鎿嶄綔绗� oldText = et.getText().toString();
    inputDone = true;
    } else {
    if (inputDone) {
    et.setText(button.getText().toString());
    inputDone = false;
    } else {
    et.append(button.getText().toString());
    }
    operatorNumber = et.getText().toString();
    }
    et.requestFocus(TextView.FOCUS_RIGHT);
    } private void caculate() {
    if ("+".equals(operator)) {
    et.setText(String.valueOf(Arith.add(oldText, operatorNumber)));
    } else if ("-".equals(operator)) {
    et.setText(String.valueOf(Arith.sub(oldText, operatorNumber)));
    } else if ("*".equals(operator)) {
    et.setText(String.valueOf(Arith.mul(oldText, operatorNumber)));
    } else if ("梅".equals(operator)) {
    if ("0".equals(operatorNumber)) {
    clear("梅");
    } else {
    et.setText(String.valueOf(Arith.div(oldText, operatorNumber)));
    }
    }
    } private void clear(String text) {
    et.setText(text);
    operator = "";
    oldText = "";
    operatorNumber = "";
    inputDone = true;
    } @Override
    public boolean onTouch(View view, MotionEvent event) {
    et.setInputType(InputType.TYPE_NULL);
    return false;
    } @Override
    public boolean onLongClick(View v) {
    clear("0");
    return false;
    }
    }
      

  2.   

    else if ("梅".equals(operator)) {
     if ("0".equals(operatorNumber)) {
     clear("梅");
     } 这个梅是乱码了,应该是除号“÷”