Android实验三事件

原创 2017年01月03日 19:42:49

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="zhku.edu.exp3_1.MainActivity"
    android:orientation="vertical"
    android:background="#000000"
    >
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:orientation="horizontal"
    >
    <TextView
        android:id="@+id/tv_show"
        android:layout_width="match_parent"
        android:layout_height="170dp"
        android:layout_marginRight="18dp"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:textSize="40sp"
        android:hint="0"
        android:gravity="end"
        android:background="@drawable/white_bg"
        />
</LinearLayout>
    <LinearLayout
        android:id="@+id/linearlayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_7"
            style="@style/ButtonBaseStyle"
            android:text="7"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_8"
            style="@style/ButtonBaseStyle"
            android:text="8"
            android:background="@drawable/white_bg"
            />
        <Button
            android:id="@+id/btn_9"
            style="@style/ButtonBaseStyle"
            android:text="9"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_clear"
            style="@style/ButtonBaseStyle"
            android:text="C"
            android:background="@drawable/white_bg"/>
        </LinearLayout>
    <LinearLayout
        android:id="@+id/linearlayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/btn_4"
            style="@style/ButtonBaseStyle"
            android:text="4"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_5"
            style="@style/ButtonBaseStyle"
            android:text="5"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_6"
            style="@style/ButtonBaseStyle"
            android:text="6"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_plus"
            style="@style/ButtonBaseStyle"
            android:text="+"
            android:background="@drawable/white_bg"/>
    </LinearLayout>
    <LinearLayout
        android:id="@+id/linearlayout3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/btn_1"
            style="@style/ButtonBaseStyle"
            android:text="1"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_2"
            style="@style/ButtonBaseStyle"
            android:text="2"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_3"
            style="@style/ButtonBaseStyle"
            android:text="3"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_minus"
            style="@style/ButtonBaseStyle"
            android:text="-"
            android:background="@drawable/white_bg"/>
    </LinearLayout>
    <LinearLayout
        android:id="@+id/linearlayout4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/btn_0"
            style="@style/ButtonBaseStyle"
            android:text="0"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_equal"
            style="@style/ButtonBaseStyle"
            android:text="="
            android:background="@drawable/pink_bg"/>
        <Button
            android:id="@+id/btn_divide"
            style="@style/ButtonBaseStyle"
            android:text="÷"
            android:background="@drawable/white_bg"/>
        <Button
            android:id="@+id/btn_multiply"
            style="@style/ButtonBaseStyle"
            android:text="×"
            android:background="@drawable/white_bg"/>
    </LinearLayout>
</LinearLayout>

style.xml

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    <style name="ButtonBaseStyle">
        <item name="android:layout_width">50dp</item>
        <item name="android:layout_height">50dp</item>
        <item name="android:layout_margin">10dp</item>
        <item name="android:textSize">30sp</item>
    </style>
    <style name="ButtonStyle" parent="ButtonBaseStyle">
        <item name="android:background">@drawable/white_bg</item>
        <item name="android:layout_weight">1</item>
    </style>

    <style name="ButtonEqualStyle" parent="ButtonBaseStyle">
        <item name="android:background">@drawable/pink_bg</item>
        <item name="android:layout_weight">1</item>
    </style>
</resources>

white_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
        <corners android:radius="5dp"/>
        <solid android:color="#ffffff"/>
</shape>
pink_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
        <corners android:radius="5dp"/>
        <solid android:color="#ee82ee"/>
</shape>

bg_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/white_bg"/>
    <item android:drawable="@drawable/pink_bg"
          android:state_pressed="true"/> <!--表示点击状态时采用粉红色-->
</selector>


MainActivity.java

package zhku.edu.exp3_1;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private TextView tv_show;
    private double num1;
    private double num2;
    private String str_oper="+";//运算符
    private StringBuffer str_display=new StringBuffer();
    private String str_result;//结果显示
    private boolean b_add,b_sub,b_mul,b_div;//运算符开关控制
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv_show=(TextView)findViewById(R.id.tv_show);
        tv_show.setText("0");

        int []ids={R.id.btn_0,R.id.btn_1,R.id.btn_2,R.id.btn_3,R.id.btn_4,
                R.id.btn_4,R.id.btn_5,R.id.btn_6,R.id.btn_7,R.id.btn_8,R.id.btn_9,
                R.id.btn_clear,R.id.btn_divide,R.id.btn_equal,R.id.btn_minus,R.id.btn_multiply,
                R.id.btn_plus};
        for(int i=0;i<ids.length;i++){
            ((Button)findViewById(ids[i])).setOnClickListener(this);
        }

    }
    public void onClick(View v){
        switch (v.getId()){
            case R.id.btn_0:
                str_display.append("0");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_1:
                str_display.append("1");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_2:
                str_display.append("2");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_3:
                str_display.append("3");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_4:
                str_display.append("4");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_5:
                str_display.append("5");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_6:
                str_display.append("6");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_7:
                str_display.append("7");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_8:
                str_display.append("8");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_9:
                str_display.append("9");
                tv_show.setText(str_display.toString());
                break;
            case R.id.btn_plus:
                str_oper="+";
                if(!(str_display.toString()=="")){
                    num1+=Double.parseDouble(str_display.toString());
                    str_display=new StringBuffer("");
                    b_add=true;
                }
                if(!(str_result==null)){
                    num1=Double.parseDouble(str_result);
                    str_result=null;
                }
                tv_show.setText(String.valueOf(num1));
                break;
            case R.id.btn_minus:
                str_oper="-";
                if(!b_sub&&!(str_display.toString()=="")){
                    num1=Double.parseDouble(str_display.toString());
                    tv_show.setText(String.valueOf(num1));
                    str_display=new StringBuffer("");
                    b_sub=true;
                }else{
                    if(!(str_display.toString()=="")){
                        num1-=Double.parseDouble(str_display.toString());
                        str_display=new StringBuffer("");
                    }
                    if(!(str_result==null)){
                        num1=Double.parseDouble(str_result);
                        str_result=null;
                    }
                    tv_show.setText(String.valueOf(num1));
                }

                break;
            case R.id.btn_multiply:
                str_oper="×";
                if(!b_mul&&!(str_display.toString()=="")){
                    num1=Double.parseDouble(str_display.toString());
                    tv_show.setText(String.valueOf(num1));
                    str_display=new StringBuffer("");
                    b_mul=true;
                }else{
                    if(!(str_display.toString()=="")){
                        num1*=Double.parseDouble(str_display.toString());
                        str_display=new StringBuffer("");
                    }
                    if(!(str_result==null)){
                        num1=Double.parseDouble(str_result);
                        str_result=null;
                    }
                    tv_show.setText(String.valueOf(num1));
                }

                break;

            case R.id.btn_divide:
            str_oper="÷";
                if(!b_div&&!(str_display.toString()=="")){
                    num1=Double.parseDouble(str_display.toString());
                    tv_show.setText(String.valueOf(num1));
                    str_display=new StringBuffer("");
                    b_div=true;
                }else {
                    if (!(str_display.toString() == "")) {
                        if (Double.parseDouble(str_display.toString())==0) {
                            Toast.makeText(MainActivity.this, "除数不能为零", Toast.LENGTH_LONG).show();
                        } else {
                            num1 /= Double.parseDouble(str_display.toString());
                            str_display = new StringBuffer("");
                        }
                    }
                    if(!(str_result==null)){
                        num1=Double.parseDouble(str_result);
                        str_result=null;
                    }
                    tv_show.setText(String.valueOf(num1));
                }

                break;

            case R.id.btn_clear:
                str_oper="+";
                str_display=new StringBuffer("");
                str_result=null;
                num1=0;
                num2=0;
                b_add=false;
                b_sub=false;
                b_mul=false;
                b_div=false;
                tv_show.setText("0");

            case R.id.btn_equal:
                if(str_oper.equals("+")){
                    num2=Double.parseDouble(str_display.toString());
                    str_result=String.valueOf(num1+num2);
                    tv_show.setText(num1+"+"+num2+"="+str_result);
                    str_display=new StringBuffer("");
                }
                if(str_oper.equals("-")){
                    num2=Double.parseDouble(str_display.toString());
                    str_result=String.valueOf(num1-num2);
                    tv_show.setText(num1+"-"+num2+"="+str_result);
                    str_display=new StringBuffer("");
                }
                if(str_oper.equals("×")){
                    num2=Double.parseDouble(str_display.toString());
                    str_result=String.valueOf(num1*num2);
                    tv_show.setText(num1+"×"+num2+"="+str_result);
                    str_display=new StringBuffer("");
                }
                if(str_oper.equals("÷")){
                    num2=Double.parseDouble(str_display.toString());
                    if(!(num2==0)){
                    str_result=String.valueOf(num1/num2);
                    tv_show.setText(num1+"÷"+num2+"="+str_result);
                    }else{
                        Toast.makeText(MainActivity.this, "除数不能为零", Toast.LENGTH_LONG).show();
                }
                    str_display=new StringBuffer("");
                }
                break;

            default:
                break;
        }

    }
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

安卓按钮响应三击事件

1、     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"  ...
  • huwan12345
  • huwan12345
  • 2017年03月18日 07:45
  • 246

实验三 数据的更新

一、实验目的 1.掌握基本表的Insert,Update,Delete操作 2.掌握视图的Insert,Update,Delete操作 二、实验环境(实验的软件、硬件环境) 硬件:PC机 软件...
  • L123012013048
  • L123012013048
  • 2015年04月02日 20:03
  • 942

Android中双击,三击事件的响应代码

Android 双击事件 三击事件 代码
  • sandisks
  • sandisks
  • 2015年03月03日 23:14
  • 822

编译原理 实验3 语法分析

语法分析 一、 实验目的 算术表达式的文法可以是(你可以根据需要适当改变):             E→E+E|E-E|E*E|E/E|(E)|i 根据算符优先分析法,将表达式进行语法分析,...
  • u011686226
  • u011686226
  • 2014年11月29日 19:41
  • 2536

java实验六 组件与事件处理 (无脑实验系列)

1.算术测试。 ²  实验要求: 编写一个算书测试小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame类...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016年05月23日 09:34
  • 1400

android 多击事件的实现方法

注:System.arraycopy方法拷贝数组到另一个数组中,自己也可以拷贝到自己 System.arraycopy(mHits, 1, mHits, 0, length-1)//代码解释如下 ...
  • wg243964183
  • wg243964183
  • 2016年09月29日 23:27
  • 294

哈工大软件学院编译原理实验3——语义分析

实验目的   这次实验的实验目的其实很明确——对源码进行语义分析,输出语义分析结果,并要求有适当的错误处理机制。可是指导书上实验目的要求自己分析,我的分析结果:本次实验要求自己定义上次实验的语法分析...
  • liushuaikobe
  • liushuaikobe
  • 2012年12月08日 00:14
  • 8190

Android进阶——双击,三击和多击的实现

双击: 先来看简单的实现方式 private void initView() { // 找到按钮控件 btn = (Button) findViewById(R....
  • haovip123
  • haovip123
  • 2016年01月14日 17:25
  • 1125

双击事件和三击事件

传承者(Inheritors)欢迎各位纠正错误,评论,吐槽!!!双击事件xml
  • wqewq19
  • wqewq19
  • 2016年01月17日 08:38
  • 189

上机实验三

/*目的:定义一个String str = “1234”;将其转换为double类型并输出 * 使用Double类创建double类型变量db并赋值1234 * 比较两者是否一致 ...
  • u012062310
  • u012062310
  • 2015年09月11日 19:37
  • 227
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android实验三事件
举报原因:
原因补充:

(最多只允许输入30个字)