Tears_fg

导航

简易计算器的实现

 

xml布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.app.MainActivity" >
    <EditText 
        android:id="@+id/editText_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:gravity="right"
        />
    <Button 
        android:id="@+id/delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="删除"
        android:textSize="20sp"
        />
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
     >
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:gravity="center_horizontal"
          >
            <Button 
                android:id="@+id/btn_7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="7"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/btn_8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="8"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/btn_9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="9"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/divide"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="/"
                android:textSize="20sp"
                />
        </LinearLayout>
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:gravity="center_horizontal"
          >
            <Button 
                android:id="@+id/btn_4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="4"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/btn_5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="5"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/btn_6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="6"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/multiply"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="*"
                android:textSize="20sp"
                />
        </LinearLayout>
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:gravity="center_horizontal"
          >
            <Button 
                android:id="@+id/btn_1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/btn_2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/btn_3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="3"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/del"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="-"
                android:textSize="20sp"
                />
        </LinearLayout>
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:gravity="center_horizontal"
          >
            <Button 
                android:id="@+id/point"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="."
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/btn_0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="0"
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/equals"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="="
                android:textSize="20sp"
                />
            <Button 
                android:id="@+id/add"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="+"
                android:textSize="20sp"
                />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

 



源程序:
package
com.example.app; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity implements OnClickListener{ private Button delete; private Button btn_1; private Button btn_2; private Button btn_3; private Button btn_4; private Button btn_5; private Button btn_6; private Button btn_7; private Button btn_8; private Button btn_9; private Button point; private Button divide; private Button multiply; private Button add; private Button del; private EditText editText; private Button equals; private Button btn_0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText_1); delete = (Button) findViewById(R.id.delete); btn_0 = (Button) findViewById(R.id.btn_0); btn_1 = (Button) findViewById(R.id.btn_1); btn_2 = (Button) findViewById(R.id.btn_2); btn_3 = (Button) findViewById(R.id.btn_3); btn_4 = (Button) findViewById(R.id.btn_4); btn_5 = (Button) findViewById(R.id.btn_5); btn_6 = (Button) findViewById(R.id.btn_6); btn_7 = (Button) findViewById(R.id.btn_7); btn_8 = (Button) findViewById(R.id.btn_8); btn_9 = (Button) findViewById(R.id.btn_9); point = (Button) findViewById(R.id.point); divide = (Button) findViewById(R.id.divide); equals = (Button) findViewById(R.id.equals); multiply = (Button) findViewById(R.id.multiply); add = (Button) findViewById(R.id.add); del = (Button) findViewById(R.id.del); btn_0.setOnClickListener(this); btn_1.setOnClickListener(this); btn_2.setOnClickListener(this); btn_3.setOnClickListener(this); btn_4.setOnClickListener(this); btn_5.setOnClickListener(this); btn_6.setOnClickListener(this); btn_7.setOnClickListener(this); btn_8.setOnClickListener(this); btn_9.setOnClickListener(this); add.setOnClickListener(this); delete.setOnClickListener(this); del.setOnClickListener(this); multiply.setOnClickListener(this); equals.setOnClickListener(this); divide.setOnClickListener(this); point.setOnClickListener(this); } @Override public void onClick(View v) { String text = editText.getText().toString(); switch(v.getId()){ case R.id.btn_0: case R.id.btn_1: case R.id.btn_2: case R.id.btn_3: case R.id.btn_4: case R.id.btn_5: case R.id.btn_6: case R.id.btn_7: case R.id.btn_8: case R.id.btn_9: case R.id.point: editText.setText(text+((Button) v).getText()); break; case R.id.add: case R.id.del: case R.id.multiply: case R.id.divide: editText.setText(text+" "+((Button) v).getText()+" "); break; case R.id.delete: if(text!=null&&!text.equals("")) editText.setText(text.substring(0, text.length()-1)); break; case R.id.equals: getResult(); break; } } private void getResult(){ String text = editText.getText().toString(); if(text==null||text.equals(" ")){ return; } if(!text.contains(" ")){ return; } double result; String s1 = text.substring(0, text.indexOf(" ")); String oprate = text.substring(text.indexOf(" ")+1, text.indexOf(" ")+2); String s2 = text.substring(text.indexOf(" ")+3); if(!s1.equals("")&&!s2.equals("")){ double d1 = Double.parseDouble(s1); double d2 = Double.parseDouble(s2); if(d1==0){ if(oprate.equals("+")){ result = d2; if(!s1.contains(".")&&!s2.contains(".")){ editText.setText((int)result+""); } editText.setText(result+""); } if(oprate.equals("*")){ result = 0; editText.setText(result+""); } if(oprate.equals("/")){ result = 0; editText.setText(result+""); } if(oprate.equals("-")){ result = 0-d2; editText.setText(result+""); } } if(oprate.equals("+")){ result = d1+d2; if(!s1.contains(".")&&!s2.contains(".")){ editText.setText((int)result+""); } editText.setText(result+""); } if(oprate.equals("*")){ result = d1*d2; editText.setText(result+""); } if(oprate.equals("/")){ result = d1/d2; editText.setText(result+""); } if(oprate.equals("-")){ result = d1-d2; editText.setText(result+""); } } } }

 

posted on 2016-04-26 12:29  Tears_fg  阅读(197)  评论(0编辑  收藏  举报