<?xml version="1.0" encoding="utf-8"?> <layout> <RelativeLayout 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" tools:context="com.razormist.simplecalculator.MainActivity"> <TextView android:id="@+id/tv_info" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginBottom="30dp" android:textSize="30sp" /> <EditText android:id="@+id/et_edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/tv_info" android:enabled="false" android:gravity="bottom" android:lines="2" android:maxLines="2" android:textSize="30sp" /> android:id="@+id/btn_seven" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_below="@+id/et_edit" android:text="7" android:textSize="20sp" android:layout_marginLeft="15dp"/> android:id="@+id/btn_eight" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_below="@+id/et_edit" android:layout_toRightOf="@+id/btn_seven" android:text="8" android:textSize="20sp"/> android:id="@+id/btn_nine" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/et_edit" android:layout_toRightOf="@+id/btn_eight" android:text="9" android:textSize="20sp"/> android:id="@+id/btn_four" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_seven" android:text="4" android:textSize="20sp" android:layout_marginLeft="15dp"/> android:id="@+id/btn_five" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_eight" android:text="5" android:layout_toRightOf="@+id/btn_four" android:textSize="20sp"/> android:id="@+id/btn_six" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_nine" android:text="6" android:layout_toRightOf="@+id/btn_five" android:textSize="20sp"/> android:id="@+id/btn_one" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_four" android:text="1" android:textSize="20sp" android:layout_marginLeft="15dp"/> android:id="@+id/btn_two" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_five" android:text="2" android:layout_toRightOf="@+id/btn_one" android:textSize="20sp"/> android:id="@+id/btn_three" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_six" android:text="3" android:layout_toRightOf="@+id/btn_two" android:textSize="20sp"/> android:id="@+id/btn_dot" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_one" android:text="." android:textSize="20sp" android:layout_marginLeft="15dp"/> android:id="@+id/btn_zero" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_two" android:layout_toRightOf="@+id/btn_dot" android:text="0" android:textSize="20sp"/> android:id="@+id/btn_equals" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_three" android:layout_toRightOf="@+id/btn_zero" android:text="=" android:textSize="20sp"/> android:id="@+id/btn_divide" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/et_edit" android:layout_toRightOf="@+id/btn_nine" android:text="/" android:textSize="20sp"/> android:id="@+id/btn_multiply" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_divide" android:layout_toRightOf="@+id/btn_six" android:text="*" android:textSize="20sp"/> android:id="@+id/btn_add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_multiply" android:layout_toRightOf="@+id/btn_three" android:text="+" android:textSize="20sp"/> android:id="@+id/btn_minus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_add" android:layout_toRightOf="@+id/btn_equals" android:text="-" android:textSize="20sp"/> android:id="@+id/btn_clear" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/btn_minus" android:text="CLEAR" android:textSize="20sp"/> </RelativeLayout> </layout>
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.razormist.simplecalculator"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:configChanges="orientation" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
dataBinding.enabled = true
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.3" dataBinding.enabled = true defaultConfig { applicationId "com.razormist.simplecalculator" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' }
private ActivityMainBinding binding; private static final char ADDITION = '+'; private static final char SUBTRACTION = '-'; private static final char MULTIPLICATION = '*'; private static final char DIVISION = '/'; private char CURRENT_ACTION;
binding = DataBindingUtil.setContentView(this, R.layout.activity_main); @Override binding.etEdit.setText(binding.etEdit.getText() + "7"); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "8"); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "9"); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "4"); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "5"); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "6"); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "1"); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "2"); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "3"); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "."); } }); @Override binding.etEdit.setText(binding.etEdit.getText() + "0"); } }); @Override Calculate(); binding.tvInfo.setText(binding.tvInfo.getText().toString() + decimalFormat.format(val2) + " = " + decimalFormat.format(val1)); CURRENT_ACTION = '0'; } }); @Override Calculate(); CURRENT_ACTION = DIVISION; binding.tvInfo.setText(decimalFormat.format(val1) + " / "); binding.etEdit.setText(null); } }); @Override Calculate(); CURRENT_ACTION = MULTIPLICATION; binding.tvInfo.setText(decimalFormat.format(val1) + " * "); binding.etEdit.setText(null); } }); @Override Calculate(); CURRENT_ACTION = ADDITION; binding.tvInfo.setText(decimalFormat.format(val1) + " + "); binding.etEdit.setText(null); } }); @Override Calculate(); CURRENT_ACTION = SUBTRACTION; binding.tvInfo.setText(decimalFormat.format(val1) + " - "); binding.etEdit.setText(null); } }); @Override if(binding.etEdit.getText().length() > 0){ CharSequence currentText = binding.etEdit.getText(); binding.etEdit.setText(currentText.subSequence(0, currentText.length() - 1)); }else{ binding.etEdit.setText(""); binding.tvInfo.setText(""); } } });
private void Calculate(){ binding.etEdit.setText(null); switch (CURRENT_ACTION){ case ADDITION: val1 = this.val1 + val2; break; case SUBTRACTION: val1 = this.val1 - val2; break; case MULTIPLICATION: val1 = this.val1 * val2; break; case DIVISION: val1 = this.val1 / val2; break; } }else{ try{ } }
Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.
Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.
FOR YOUR OWN SAFETY, PLEASE:
1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.