安卓开发之简易计算器教程

真·简易计算器,只支持两个整型数据进行简单的加减乘除四则运算,仅作为熟悉安卓开发的练手项目。
一共包括两个界面,一是主界面,如图1-1所示,是计算器的主体部分,二是选择运算符界面,如图1-2所示。
安卓开发之简易计算器教程_第1张图片
1-1主界面
安卓开发之简易计算器教程_第2张图片
1-2选择界面

主界面代码:




    

        
        
    

    

        
            
            
            
            
        
        
            
            
            
            
        

        
            
            
            
        
        
        
            
            
            
            
        

    


这里采用了单选按钮为选择方式,当RadioButton均在RadioGroup内时,只能选择一个选项,如果不在,就可以同时选择多个。
选择运算符界面代码:




    
    
    
        
        
        
        
        
        
        
        
    
    


主界面逻辑:

package com.example.calculator;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private EditText firsttext;
    private EditText secondtext;
    private TextView typeshow;
    private Button select;
    private Button cal;
    private TextView resultshow;
    public static final int RequestCode=0;
    private  int type=-1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        firsttext=(EditText)findViewById(R.id.firstnum);
        secondtext=(EditText)findViewById((R.id.secondnum));
        typeshow=(TextView)findViewById(R.id.type);
        select=(Button)findViewById(R.id.select);
        cal=(Button)findViewById(R.id.calculate);
        resultshow=(TextView)findViewById(R.id.result);
        select.setOnClickListener(new SelectCalculationTypeListener());
        cal.setOnClickListener(new CalculationListener());
    }

    class SelectCalculationTypeListener implements View.OnClickListener {
        @Override
        public void onClick(View view) {
            Intent intent=new Intent(MainActivity.this,TypeActivity.class);
            MainActivity.this.startActivityForResult(intent,RequestCode);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(this.RequestCode==requestCode&&TypeActivity.resultCode==resultCode){
            Bundle bundle=data.getExtras();
            type=data.getIntExtra("type",-1);
            typeshow.setText(Info.typemap.get(type));

        }

    }

    class CalculationListener implements View.OnClickListener{
        @Override
        public void onClick(View view) {

            int result=0;
            int first=Integer.parseInt(firsttext.getText().toString());
            int second=Integer.parseInt(secondtext.getText().toString());

            switch (type)
            {
                case 1:
                    result = first + second;
                break;
                case 2:
                    result = first - second;
                    break;
                case 3:
                    result = first * second;
                    break;
                case 4:
                    result = first / second;
                    break;
                default:
                    break;
            }
            resultshow.setText(String.valueOf(result));
        }
    }
}

选择界面逻辑:

package com.example.calculator;

import android.app.Activity;
import android.content.Intent;
import android.icu.util.IslamicCalendar;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class TypeActivity extends Activity {

    private Button ok;
    private RadioGroup radioGroup;
    private RadioButton add,sub,mul,div;
    private  int type=-1;
    public static final int resultCode=0;

    @Override
    protected void onCreate(Bundle SavedInstanceState){
        super.onCreate(SavedInstanceState);
        setContentView(R.layout.activity_type);

        ok=(Button)findViewById(R.id.ok);
        radioGroup=(RadioGroup)findViewById(R.id.radiogroup);
        add=(RadioButton)findViewById(R.id.add);
        sub=(RadioButton)findViewById(R.id.sub);
        mul=(RadioButton)findViewById(R.id.multiply);
        div=(RadioButton)findViewById(R.id.division);
        radioGroup.setOnCheckedChangeListener(new GroupSelectionListener());
        ok.setOnClickListener(new OKListener());
    }

    class GroupSelectionListener implements RadioGroup.OnCheckedChangeListener{
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int i) {
            int RadioButtonId=radioGroup.getCheckedRadioButtonId();
            RadioButton btn=(RadioButton) TypeActivity.this.findViewById(RadioButtonId);
            if(btn.getId()==add.getId()){
                type=1;
            }else if(btn.getId()==sub.getId()){
                type=2;
            }else if(btn.getId()==mul.getId()){
                type=3;
            }else if(btn.getId()==div.getId()){
                type=4;
            }
        }
    }

    class OKListener implements View.OnClickListener{
        @Override
        public void onClick(View view) {
            Intent intent=getIntent();
            intent.putExtra("type",type);
            Bundle bundle=new Bundle();
            intent.putExtras(bundle);

            TypeActivity.this.setResult(resultCode,intent);
            TypeActivity.this.finish();
        }
    }
}

运行结果截图:
安卓开发之简易计算器教程_第3张图片

你可能感兴趣的:(安卓开发之简易计算器教程)