//activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/TV" android:layout_width="match_parent" android:layout_height="100dp" android:layout_weight="0" android:textSize="70dp"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:orientation="horizontal" > <Button android:id="@+id/ButtonC" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="C"/> <Button android:id="@+id/ButtonCE" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CE"/> <Button android:id="@+id/ButtonSQ" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="√ ̄"/> <Button android:id="@+id/ButtonPlus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:orientation="horizontal" > <Button android:id="@+id/Button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1"/> <Button android:id="@+id/Button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2"/> <Button android:id="@+id/Button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3"/> <Button android:id="@+id/ButtonMinus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" android:gravity="left" android:orientation="horizontal" > <Button android:id="@+id/Button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="4"/> <Button android:id="@+id/Button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="5"/> <Button android:id="@+id/Button6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="6"/> <Button android:id="@+id/ButtonMUL" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="*"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" android:gravity="left" android:orientation="horizontal" > <Button android:id="@+id/Button7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="7"/> <Button android:id="@+id/Button8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="8"/> <Button android:id="@+id/Button9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="9"/> <Button android:id="@+id/ButtonDiv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="/"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" android:gravity="left" android:orientation="horizontal" > <Button android:id="@+id/ButtonPoint" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="."/> <Button android:id="@+id/Button0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0"/> <Button android:id="@+id/ButtonSig" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="sig"/> <Button android:id="@+id/ButtonEq" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="="/> </LinearLayout> </LinearLayout>
//MainActivity.java
package com.example.ml.calculator; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.lang.*; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private TextView tv0; private String s; private static double num_help; private static String sign; private void init(){ Button button0 = (Button) findViewById(R.id.Button0); Button button1 = (Button) findViewById(R.id.Button1); Button button2 = (Button) findViewById(R.id.Button2); Button button3 = (Button) findViewById(R.id.Button3); Button button4 = (Button) findViewById(R.id.Button4); Button button5 = (Button) findViewById(R.id.Button5); Button button6 = (Button) findViewById(R.id.Button6); Button button7 = (Button) findViewById(R.id.Button7); Button button8 = (Button) findViewById(R.id.Button8); Button button9 = (Button) findViewById(R.id.Button9); Button buttonpt = (Button) findViewById(R.id.ButtonPoint); Button buttonc = (Button) findViewById(R.id.ButtonC); Button buttonce = (Button) findViewById(R.id.ButtonCE); Button buttonsq = (Button) findViewById(R.id.ButtonSQ); Button buttonsig = (Button) findViewById(R.id.ButtonSig); Button buttoneq = (Button) findViewById(R.id.ButtonEq); Button buttonp = (Button) findViewById(R.id.ButtonPlus); Button buttonminus = (Button) findViewById(R.id.ButtonMinus); Button buttondiv = (Button) findViewById(R.id.ButtonDiv); Button buttonmul = (Button) findViewById(R.id.ButtonMUL); tv0 = (TextView) findViewById(R.id.TV); button0.setOnClickListener(this); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); button4.setOnClickListener(this); button5.setOnClickListener(this); button6.setOnClickListener(this); button7.setOnClickListener(this); button8.setOnClickListener(this); button9.setOnClickListener(this); buttonc.setOnClickListener(this); buttonce.setOnClickListener(this); buttonsq.setOnClickListener(this); buttoneq.setOnClickListener(this); buttonp.setOnClickListener(this); buttonminus.setOnClickListener(this); buttondiv.setOnClickListener(this); buttonmul.setOnClickListener(this); buttonpt.setOnClickListener(this); s = ""; num_help = 0; sign = ""; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } public void onClick(View view) { switch(view.getId()){ case R.id.Button0: if(s == ""){ s = "0"; } else{ s = s + "0"; } tv0.setText(s); break; case R.id.Button1: if(s == ""){ s = "1"; } else{ s = s + "1"; } tv0.setText(s); break; case R.id.Button2: if(s == ""){ s = "2"; } else{ s = s + "2"; } tv0.setText(s); break; case R.id.Button3: if(s == ""){ s = "3"; } else{ s = s + "3"; } tv0.setText(s); break; case R.id.Button4: if(s == ""){ s = "4"; } else{ s = s + "4"; } tv0.setText(s); break; case R.id.Button5: if(s == ""){ s = "5"; } else{ s = s + "5"; } tv0.setText(s); break; case R.id.Button6: if(s == ""){ s = "6"; } else{ s = s + "6"; } tv0.setText(s); break; case R.id.Button7: if(s == ""){ s = "7"; } else{ s = s + "7"; } tv0.setText(s); break; case R.id.Button8: if(s == ""){ s = "8"; } else{ s = s + "8"; } tv0.setText(s); break; case R.id.Button9: if(s == ""){ s = "9"; } else{ s = s + "9"; } tv0.setText(s); break; case R.id.ButtonC: s = ""; tv0.setText(s); break; case R.id.ButtonCE: s=s.substring(0,s.length()-1); tv0.setText(s); break; case R.id.ButtonPoint: s=s+"."; tv0.setText(s); break; case R.id.ButtonSQ: Double d = Double.parseDouble(s); d = Math.sqrt(d); String tem = String.valueOf(d); tv0.setText(tem); break; case R.id.ButtonEq: Double d2 = Double.parseDouble(s); Double result = cal(sign,num_help,d2); s = String.valueOf(result); tv0.setText(s); break; case R.id.ButtonPlus: Double d1 = Double.parseDouble(s); num_help = d1; sign = "+"; s = ""; tv0.setText(s); break; case R.id.ButtonMinus: d1 = Double.parseDouble(s); num_help = d1; sign = "-"; s = ""; tv0.setText(s); break; case R.id.ButtonMUL: d1 = Double.parseDouble(s); num_help = d1; sign = "*"; s = ""; tv0.setText(s); break; case R.id.ButtonDiv: d1 = Double.parseDouble(s); num_help = d1; sign = "/"; s = ""; tv0.setText(s); break; case R.id.ButtonSig: break; } } public Double cal(String sign,Double d1,Double d2){ Double result=null; if(sign == "+"){ result = d1+d2; }else if(sign == "-"){ result = d1-d2; }else if(sign == "*"){ result = d1*d2; }else if(sign == "/"){ result = d1/d2; } return result; } }