كيفاش نصاوب آلة حاسبة ب Android
فهاد الدرس من سلسلة Android غادي نشوفو كيفاش نقادو واحد الآلة حاسبة بسيطة
غادي تمكنا من القيام بعمليات بسيطة الجمع والطرح والضرب والقسمة هاد المشروع بسيط للمبتدئين .
نظرة سريعة بالفيديو
- الملف activity_main.xml
اول حاجة غادي نديروها غادي نحملو Android Studio من الموقع https://developer.android.com/studio/index.html من بعد التثبيت غادي تفتحو وتزيد مشروع جديد تسميه Calculatrice من بعد ما يتزاد غادي تمشي للمجلد java/res/layout وتفتح الملف activity_main.xml وغادي تزيد فيه الكود لي غادي يمكنا باش نقادو ل interface لي غادي يكونو فيها 5 ديال ل boutons كل وحدة غادي تكون مسؤولة على عملية حسابية الكود النهائي ديالو هو :
<?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"
android:background="#AEE8E9"
android:orientation="vertical"
tools:context="com.example.imad.calculatrice.MainActivity">
<TextView
android:id="@+id/label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#000"
android:textStyle="bold"
android:textSize="25dp"
android:text="@string/help_instructions" />
<EditText
android:id="@+id/numberOne"
android:layout_width="match_parent"
android:inputType="numberDecimal"
android:layout_marginTop="25dp"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/numberTwo"
android:layout_width="match_parent"
android:inputType="numberDecimal"
android:layout_marginTop="25dp"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
>
<Button
android:id="@+id/plusButton"
android:text="+"
style="?android:buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/moinsButton"
android:text="-"
style="?android:buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/multiButton"
android:text="*"
style="?android:buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/divButton"
android:text="/"
style="?android:buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/clear"
android:text="CLR"
style="?android:buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#000"
android:textStyle="bold"
android:textSize="25dp"
android:layout_marginTop="10dp"
android:text="Resultat" />
<TextView
android:id="@+id/resultDisplay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#000"
android:textStyle="bold"
android:textSize="25dp"
android:layout_marginTop="10dp"
android:text="0.0" />
</LinearLayout>
- الملف MainActivity.java
من بعد غادي تمشي للمجلد java/com.exemple.package.calculatrice وغادي تزيد الكود لي غادي يمكنا من إضافة العمليات الحسابية لكل bouton عندنا فل interface الجزء الاول من الكود لي غادي تزيدو من بعد public class MainActivity extends AppCompatActivity ولي غادي يمكنا من تعريف المتغيرات لي كاينة فل interface ديالنا هو :
package com.example.imad.calculatrice;
import android.renderscript.Double2;
import android.support.annotation.IntegerRes;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private EditText nombre1;
private EditText nombre2;
private Button btnAddition;
private Button btnMultiplication;
private Button btnDivision;
private Button btnSoustraction;
private Button btnClear;
private TextView resultTxt;
- تتمة الملف MainActivity.java
فهاد الجزء غادي نربطو ما بين المتغيرات لي فلMainActivity مع الملف activity_main.xml الكود لي غادي يتزاد هو :
nombre1 = (EditText) findViewById(R.id.numberOne);
nombre2 = (EditText) findViewById(R.id.numberTwo);
btnAddition = (Button) findViewById(R.id.plusButton);
btnMultiplication = (Button) findViewById(R.id.multiButton);
btnDivision = (Button) findViewById(R.id.divButton);
btnSoustraction = (Button) findViewById(R.id.moinsButton);
btnClear = (Button) findViewById(R.id.clear);
resultTxt = (TextView) findViewById(R.id.resultDisplay);
- تتمة الملف MainActivity
فهاد الجزء غادي نزيدو الكود لي غادي يمكنا من إنجاز الجمع والضرب وغادي يعرض واحد الرسالة ديال الخطأ في حالة ما كان واحد من الحقول فارغ الكود لي غادي يتزاد هو :
//addition
btnAddition.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if((nombre1.getText().length() > 0) && (nombre2.getText().length() > 0)) {
double nbr1 = Double.parseDouble(nombre1.getText().toString());
double nbr2 = Double.parseDouble(nombre2.getText().toString());
double result = nbr1 + nbr2;
resultTxt.setText(Double.toString(result));
}else{
Toast.makeText(MainActivity.this,"Veuillez remplir tous les champs!",Toast.LENGTH_LONG).show();
}
}
});
//multiplication
btnMultiplication.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if((nombre1.getText().length() > 0) && (nombre2.getText().length() > 0)) {
double nbr1 = Double.parseDouble(nombre1.getText().toString());
double nbr2 = Double.parseDouble(nombre2.getText().toString());
double result = nbr1 * nbr2;
resultTxt.setText(Double.toString(result));
}else{
Toast.makeText(MainActivity.this,"Veuillez remplir tous les champs!",Toast.LENGTH_LONG).show();
}
}
});
- تتمة الملف MainActivity.java
فهاد الجزء غادي نزيدو الكود لي غادي يمكنا من إنجاز الطرح و القسمة وغادي يعرض واحد الرسالة ديال الخطأ في حالة ما كان واحد من الحقول فارغ والكود لي غادي يمكنا من إعادة الآلة الحاسبة لوضع البداية الكود كامل هو :
//soustraction
btnSoustraction.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if((nombre1.getText().length() > 0) && (nombre2.getText().length() > 0)) {
double nbr1 = Double.parseDouble(nombre1.getText().toString());
double nbr2 = Double.parseDouble(nombre2.getText().toString());
double result = nbr1 - nbr2;
resultTxt.setText(Double.toString(result));
}else{
Toast.makeText(MainActivity.this,"Veuillez remplir tous les champs!",Toast.LENGTH_LONG).show();
}
}
});
//division
btnDivision.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if((nombre1.getText().length() > 0) && (nombre2.getText().length() > 0)) {
double nbr1 = Double.parseDouble(nombre1.getText().toString());
double nbr2 = Double.parseDouble(nombre2.getText().toString());
double result = nbr1 / nbr2;
resultTxt.setText(Double.toString(result));
}else{
Toast.makeText(MainActivity.this,"Veuillez remplir tous les champs!",Toast.LENGTH_LONG).show();
}
}
});
btnClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
nombre1.setText("");
nombre2.setText("");
resultTxt.setText("0.00");
}
});