This article shares the specific code of Android Studio to implement simple calculator for your reference. The specific content is as follows
1. Problem description
Design and implement a number converter that can convert any input numerical value of the numerical type into a specified number type. There are four types of number system that must be implemented: binary, octal, decimal and hexadecimal.
2. Basic requirements
(1) Use the Spinner control to list four number types, namely: binary, octal, decimal and hexadecimal;
(2) The "Numerical" input box does not use the input panel provided by the Android system to perform numerical input; and can only be integer values;
Layout code:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Balance converter" android:textSize="35sp" android:textColor="#9900AA"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Input data:" android:textSize="30sp" android:textColor="#99CCAA"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android: android:layout_width="125dp" android:layout_height="35dp" android:text="Binary type:" android:textSize="25sp" android:textColor="#000" /> <Spinner android: android:layout_width="240dp" android:layout_height="35dp" android:textSize="30sp" /> </LinearLayout> <EditText android: android:layout_width="match_parent" android:layout_height="wrap_content"></EditText> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Output data:" android:textSize="30sp" android:textColor="#99CCAA"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android: android:layout_width="125dp" android:layout_height="35dp" android:text="Binary type:" android:textSize="25sp" android:textColor="#000" /> <Spinner android: android:layout_width="240dp" android:layout_height="35dp" android:textSize="30sp" /> </LinearLayout> <EditText android: android:layout_width="match_parent" android:layout_height="wrap_content"></EditText> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="0" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="1" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="2" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="3" android:background="@drawable/btn_1" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="4" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="5" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="6" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="7" android:background="@drawable/btn_1" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="8" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="9" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="A" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="B" android:background="@drawable/btn_1" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="C" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="D" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="E" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="F" android:background="@drawable/btn_1" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android: android:layout_width="70dp" android:layout_height="35dp" android:text="CE" android:background="@drawable/btn_1" /> <Button android: android:layout_width="70dp" android:layout_height="40dp" android:text="calculate" android:background="@drawable/btn_1" /> </LinearLayout> </LinearLayout>
Button press effect (btn_1.xml) code
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:andro> <item android:state_pressed="true"> <shape> <solid android:color="#CC7A00"/> <corners android:radius="10dp"/> </shape> </item> <item android:state_pressed="false"> <shape> <solid android:color="#FF9900"/> <corners android:radius="10dp"/> </shape> </item> </selector>
MainActivity
package ; import ; import ; import ; import ; import ; import ; import ; import ; public class MainActivity extends AppCompatActivity { Spinner spinner1,spinner2; EditText et_shuru,et_shuchu; Button btn_CE,btn_js; int ids[]={.btn_0,.btn_1,.btn_2,.btn_3,.btn_4,.btn_5, .btn_6,.btn_7, .btn_8,.btn_9,.btn_A,.btn_B,.btn_C,.btn_D,.btn_E,.btn_F}; String temp=null,num1=null,num2=null,num3=null,num4=null;int k; @Override protected void onCreate(Bundle savedInstanceState) { (savedInstanceState); setContentView(.activity_main); btn_CE=findViewById(.btn_CE); btn_js=findViewById( .btn_js); btn_CE.setOnClickListener(new () { @Override public void onClick(View v) { et_shuru.setText(""); et_shuchu.setText(""); } }); for(int i=0;i<;i++){ Button btn = findViewById(ids[i]); if(btn != null) (new () { @Override public void onClick(View v) { switch (()){ case .btn_0: et_shuru.setText(et_shuru.getText()+"0"); break; case .btn_1: et_shuru.setText(et_shuru.getText()+"1"); break; case .btn_2: et_shuru.setText(et_shuru.getText()+"2"); break; case .btn_3: et_shuru.setText(et_shuru.getText()+"3"); break; case .btn_4: et_shuru.setText(et_shuru.getText()+"4"); break; case .btn_5: et_shuru.setText(et_shuru.getText()+"5"); break; case .btn_6: et_shuru.setText(et_shuru.getText()+"6"); break; case .btn_7: et_shuru.setText(et_shuru.getText()+"7"); break; case .btn_8: et_shuru.setText(et_shuru.getText()+"8"); break; case .btn_9: et_shuru.setText(et_shuru.getText()+"9"); break; case .btn_A: et_shuru.setText(et_shuru.getText()+"A"); break; case .btn_B: et_shuru.setText(et_shuru.getText()+"B"); break; case .btn_C: et_shuru.setText(et_shuru.getText()+"C"); break; case .btn_D: et_shuru.setText(et_shuru.getText()+"D"); break; case .btn_E: et_shuru.setText(et_shuru.getText()+"E"); break; case .btn_F: et_shuru.setText(et_shuru.getText()+"F"); break; } } }); } et_shuru=findViewById(.et_shuru); et_shuchu=findViewById(.et_shuchu); spinner1=(Spinner)findViewById(.spinner1); spinner2=(Spinner)findViewById(.spinner2); //Create a data source String[] mltems = getResources().getStringArray(); ArrayAdapter<String>adapter= new ArrayAdapter<String>(this,.simple_spinner_item,mltems); (.simple_spinner_dropdown_item); //Bind Adapter to the control (adapter); (new () { @Override public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { switch (pos){ case 0: k=2;setEnabled(2);break; case 1: k=8;setEnabled(8);break; case 2: k=10;setEnabled(10);break; case 3: k=16;setEnabled(16);break; } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); (adapter); (new () { @Override public void onItemSelected(AdapterView<?> parent, View view, final int pos, long id) { switch (pos){ case 0: btn_js.setOnClickListener(new () { @Override public void onClick(View v) { temp = et_shuru.getText().toString(); num3 = (temp, k).toString();//Convert to decimal; num1 = ((num3)); et_shuchu.setText(num1); } });break; case 1: btn_js.setOnClickListener(new () { @Override public void onClick(View v) { temp = et_shuru.getText().toString(); num3 = (temp, k).toString();//Convert to decimal; num2 = ((num3)); et_shuchu.setText(num2); } });break; case 2: btn_js.setOnClickListener(new () { @Override public void onClick(View v) { temp = et_shuru.getText().toString(); num3 = (temp, k).toString();//Convert to decimal; et_shuchu.setText(num3); } });break; case 3: btn_js.setOnClickListener(new () { @Override public void onClick(View v) { temp = et_shuru.getText().toString(); num3 = (temp, k).toString();//Convert to decimal; num4 = ((num3)); et_shuchu.setText(num4); } });break; } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } public void setEnabled(int count){ int i =0,size = (count,); for( i=0;i<size;i++){ Button btn = findViewById(ids[i]); if(btn != null){ (true); } } for( i=size;i<;i++){ Button btn = findViewById(ids[i]); if(btn != null){ (false); } } } }
Data source for Spinner control ()
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="data"> <item>Binary</item> <item>Octal</item> <item>Decimal</item> <item>hexadecimal</item> </string-array> </resources>
The above is all the content of this article. I hope it will be helpful to everyone's study and I hope everyone will support me more.