简单计算器实例

编程开发时间:2021-11-29 00:04:17

简单计算器实例

***回答

admin

树之空

回答于:2021-11-29

计算器是我们生活中常见的一个工具,今天我们就使用Android中一些简单的控件来完成一个计算器。首先看一下效果:

简单计算器实例

布局部分:

1,计算器一共分为5行,第一行是显示框,剩下的四行是数字和符号。

2,这个布局很简单,可以使用linearlayout来完成,最外层视图方向使用android:orientation=”vertical”,每行之间使用android:orientation=”horizontal”,按钮使用Button来填充。

下面是主要的布局部分

<LinearLayout
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal"
 android:paddingTop="5dip" >

<Button
 android:id="@+id/Button07"
 android:layout_width="80dip"
 android:layout_height="wrap_content"
 android:text="7"
 android:textSize="25sp" />

<Button
 android:id="@+id/Button08"
 android:layout_width="80dip"
 android:layout_height="wrap_content"
 android:text="8"
 android:textSize="25sp" />

<Button
 android:id="@+id/Button09"
 android:layout_width="80dip"
 android:layout_height="wrap_content"
 android:text="9"
 android:textSize="25sp" />

<Button
 android:id="@+id/ButtonJia"
 android:layout_width="80dip"
 android:layout_height="wrap_content"
 android:text="+"
 android:textSize="25sp" />
 </LinearLayout>

代码实现:

 @Override
 public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main); // 跳转到main界面
       initButton();

       // 清空按钮的点击事件监听器
       buttonC.setOnClickListener(new OnClickListener() {
       public void onClick(View v) {
            str1 = "";
            str2 = ""; // 清空记录
            tv.setText(str1);
            flag = 0;
      }
 });
 // 监听
 for (int i = 0; i < buttons.length; i++) {
       temp = (Button) findViewById(buttons[i]);
       temp.setOnClickListener( // 为Button添加监听器
       new OnClickListener() {
            @Override
            public void onClick(View v) {
                 str1 = tv.getText().toString().trim();
                 str1 = str1 + String.valueOf(((Button) v).getText());// 获得新输入的值
                 System.out.println("str1" + ":::" + str1);
                 tv.setText(str1);
           }
      });
 }

 buttonListener(buttonJia, 1);
 buttonListener(buttonJian, 2);
 buttonListener(buttonCheng, 3);
 buttonListener(buttonChu, 4);

 buttonDengyu.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
           System.out.println(str1);
           result1 = Integer.parseInt(str1);
           if (flag == 1) {
                result = result0 + result1;
                System.out.println(result0 + ":" + result1);
           } else if (flag == 2) {
                result = result0 - result1;
           } else if (flag == 3) {
                result = result0 * result1;
           } else if (flag == 4) {
                result = (int) (result0 / result1);
           }
           String str = (result + "").trim();
           System.out.println(str);
           tv.setText(str);
     }
 });
 }

 // 初始化按钮
 public void initButton() { // 初始化控件资源
      tv = (TextView) this.findViewById(R.id.tv); // 获取文本框控件对象
      str1 = String.valueOf(tv.getText());
      str2 = ""; // 初始化运算输入数值

 buttonC = (Button) this.findViewById(R.id.ButtonC); // 获得计算按钮的按钮对象
 buttonJia = (Button) this.findViewById(R.id.ButtonJia);
 buttonJian = (Button) this.findViewById(R.id.ButtonJian);
 buttonCheng = (Button) this.findViewById(R.id.ButtonCheng);
 buttonChu = (Button) this.findViewById(R.id.ButtonChu);
 buttonDengyu = (Button) this.findViewById(R.id.ButtonDengyu);

 buttons = new int[] { // 记录数值按钮的id
      R.id.Button00, R.id.Button01, R.id.Button02, R.id.Button03,
      R.id.Button04, R.id.Button05, R.id.Button06, R.id.Button07,
      R.id.Button08, R.id.Button09 };
 }

 // 按钮监听
 public void buttonListener(Button button, final int id) {
      button.setOnClickListener(new OnClickListener() {
           @Override
           public void onClick(View v) {
                String str = tv.getText().toString().trim();
                result0 = Integer.parseInt(str);
                tv.setText("");
                flag = id;
           }
     });
 }

源码下载:点击下载

其他问题

关于网站
树之空,一个聚集程序员工作开发的文章知识网站。你可以浏览到大量的软件编程开发文章,互联网新闻,IT行业资讯热点,编程开发,数据库服务器等知识。