تطبيق حساب كتلة الجسم بأندرويد للمبتدئين

imadbelasri Android
AN

فهاد التطبيق الجديد من سلسلة تطبيقات أندرويد غادي نقادو واحد التطبيق لي معروف ولي كيحسب مؤشر كتلة الجسم وكيعطي النتيجة للمستخدم بالإضافة لمعلومة حول الوزن ديالو التطبيق بسيط للمبتدئين فأندرويد.


نظرة سريعة بالفيديو


1- الملف activity_main.xml

فأول حاجة غادي نديرو غادي نزيدو project جديد ف android studio ختار Basic Activity من بعد ميتزاد غادي تمشي للمجلد res/layout فيه كاين جوج ملفات content_main.xml وactivity_main.xml هادا هو الملف ديال الصفحة الرئيسية ديالنا فيها الكود لي كيزيد لbar لي كتكون فأعلى التطبيق لي فيها العنوان وأيضا فيها الملف content_main.xml لي غادي نشوفو الكود ديالو من بعد الكود ديال activity_main.xml هو :

                                                    
                                                        <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.example.belasri.bmiapp.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>

                                                    
                                                

2- الملف content_main.xml

دائما فالمجلد res/layout فيه كاين الملف content_main.xml كنزيد فيه TextView هي لي كتمكني باش نعرض text فالتطبيق هاد الTextView هي لي كانشوفو فأول مكنفتحو التطبيق ولي المحتوى ديالها إضغط هنا وملي كنكليكي عليها كنتوجه مباشرة ل CalculateActivity ولي غادي نزيدوها منبعد ولي فيها غادي نتمكنو من حساب كتلة الجسم الكود ديال الملف هو:

                                                        
                                                            <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    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="#757575"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.belasri.bmiapp.MainActivity"
    tools:showIn="@layout/activity_main">
    <TextView
        android:id="@+id/welcommeText"
        android:gravity="center"
        android:textSize="40sp"
        android:textColor="#FFFFFF"
        android:layout_marginTop="200dp"
        android:layout_marginLeft="100dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="إضغط هنا" />
</RelativeLayout>

                                                        
                                                    

3- الملف MainActivity.java

فالمجلد java وفال package com كاين الملف MainActivity.java هادا الملف الرئيسي ديالنا لي كيعرض الصفحة الرئيسية ديالنا فاول حاجة كنسترجع TextView لي زدنا فالملف content_main.xml بواسطة ل id ديالها منبعد كنزيد الكود لي كيمكني ملي كنكليكي عليها كنتوجه للCalculateActivity ولي غادي نزيدو من بعد الكود ديال الملف هو :

                                                        
                                                            package com.example.belasri.bmiapp;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView txt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        txt = (TextView) findViewById(R.id.welcommeText);
        setSupportActionBar(toolbar);
        txt.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this,CalculateActivity.class);
                startActivity(i);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

                                                        
                                                    

4- الملف activity_calculate.xml

منبعد زيد activity جديدة فالمجلد java/com.example ديرها Empty Activity سميها CalculateActivity منبعد ماتزاد سير للمجلد res/layout فالملف activity_calculate.xml لي غادي تلقاه تزاد تما غادي نزيدو الفورم لي غادي تمكنا من حساب كتلة الجسم ولي غادي تكون عبارة عن textview غادي يكون فيها عنوان التطبيق وجوج ديال EditText وحدة غادي تاخد الوزن ووحدة الطول و bouton لي غادي يمكنا من حساب المؤشر وجوج ديال les textviews وحدة غادي تعرض المؤشر ووحدة الرسالة وكل واحد من هاد العناصر عندو id باش غادي نسترجعوه فل CalculateActivity.java الكود ديال الملف هو:

                                                        
                                                            <?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:orientation="vertical"
    tools:context="com.example.belasri.bmiapp.CalculateActivity">
    <TextView
        android:text="حساب كتلة الجسم"
        android:layout_marginTop="20dp"
        android:textSize="30sp"
        android:textColor="#000"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <LinearLayout
        android:orientation="vertical"
        android:layout_marginTop="50dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:id="@+id/weight"
            android:padding="10dp"
            android:hint= "الوزن بالكلغ"
            android:gravity="right"
            android:ellipsize="end"
            android:paddingLeft="10dp"
            android:supportsRtl="true"
            android:inputType="numberDecimal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <EditText
            android:id="@+id/height"
            android:padding="10dp"
            android:gravity="right"
            android:ellipsize="end"
            android:paddingLeft="10dp"
            android:inputType="numberDecimal"
            android:supportsRtl="true"
            android:layout_marginTop="20dp"
            android:hint= "الطول بالمتر"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <Button
            android:id="@+id/calculate"
            android:textSize="20sp"
            android:layout_marginTop="40dp"
            android:textColor="#000"
            android:text="حساب"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <TextView
        android:id="@+id/bmi"
        android:layout_marginTop="20dp"
        android:textSize="30sp"
        android:textColor="#000"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/msg"
        android:layout_marginTop="20dp"
        android:textSize="30sp"
        android:textColor="#000"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

                                                        
                                                    

5- الملف CalculateActivity.java

فالمجلد java والملف CalculateActivity.java فيه غادي يكون الكود لي غادي يمكنا من حساب مؤشر كتلة الجسم فمنبعد مكنسترجعوا les textviews و les edittexts ول bouton كنخدم بلevent onclick ديال ل bouton يعني ملي نكليكي عليها غادي يتنفد الكود فكنديكلاري des variables لي كيخدو الوزن والطول لي دخل المستخدم فالحقول من بعد كنعيط لل fonction calculateBMI لي كتحسب مؤشر كتلة الجسم من بعد كن tester على النتيجة كنعرض المساج لي كيساوي كل مؤشر فtextview لي كيتعرض فيها الكود ديال الملف هو :

                                                        
                                                            package com.example.belasri.bmiapp;

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

public class CalculateActivity extends AppCompatActivity {
    EditText weightEdit,heightEdit;
    TextView bmiText,message;
    Button calc;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calculate);
        weightEdit = (EditText) findViewById(R.id.weight);
        heightEdit = (EditText) findViewById(R.id.height);
        bmiText = (TextView) findViewById(R.id.bmi);
        message = (TextView) findViewById(R.id.msg);
        calc = (Button)findViewById(R.id.calculate);
        calc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                double bmi = 0;
                double weight = 0;
                double height = 0;
                String msg = "";
                weight = Double.parseDouble(weightEdit.getText().toString());
                height = Double.parseDouble(heightEdit.getText().toString());
                bmi =  calculateBMI(weight, height);
                bmiText.setText(String.valueOf(bmi));
                if(bmi < 18.5){
                    msg = "نقص في الوزن";
                }else if(bmi > 18.5 && bmi < 25){
                    msg = "وزن طبيعي";
                }else if(bmi > 25){
                    msg = "وزن زائد ";
                }
                message.setText(msg);
            }
        });
    }
    private double calculateBMI (double weight, double height) {
        return Math.round(weight/(height*height));
    }
}

                                                        
                                                    

دروس ذات صلة

AN

كيفاش نصاوب آلة حاسبة ب Android

فهاد الدرس من سلسلة Android غادي نشوفو كيفاش نقادو واحد الآلة حاسبة بسيطة غادي تمكنا من القيام بع...


AN

كيفاش نصاوب Notes App

فهاد الدرس من سلسلة الأندرويد غادي نشوفو كيفاش نقادو واحد التطبيق كيمكن المستخدم من إمتلاك مذكرة يسج...


AN

كيفاش تصاوب Scanner Mood بالاندرويد

فهاد الدرس من سلسلة الاندرويد غادي نشوفو كيفاش نقادو واحد التطبيق كيمكن المستخدم من التعرف على الحا...


AN

كيفاش تصوب لعبة Brain Train بالاندرويد

فهاد الدرس من سلسلة الأندرويد غادي نشوفو كيفاش نصاوبو واحد اللعبة بسيطة سميتها Brain Train لعبة بسي...


AN

كيفاش نصاوب Contacts App بالأندرويد الجزء الاول

فهاد الدرس من سلسلة الاندرويد غادي نقادو واحد التطبيق كيمكن من تسجيل Contacts فقاعدة البيانات كما ك...


AN

كيفاش نصاوب Contacts App بالأندرويد الجزء الثاني

فهاد الجزء الثاني من هاد الدرس غادي نكملو الملفات الأخرى ولي غادي تمكن التطبيق ديالنا من الإشتغال ول...


AN

كيفاش تستعمل Volley باش ترسل البيانات الجزء الأول

فهاد الدرس من سلسلة الاندرويد غادي نشوفو كيفاش نستعملو ل volley library باش نديرو إتصال مع قاعدة بي...


AN

كيفاش تستعمل Volley باش ترسل البيانات الجزء الثاني

فهاد الجزء الثاني من هاد المشروع غادي نقادو الملفات لي غادي يمكننا من الإتصال بقاعدة البيانات والكود...


AN

كيفاش تستعمل Volley باش ترسل البيانات الجزء الثالت

فهاد الجزء الثالث من هاد المشروع غادي نزيدو واحد الدومين لي غادي يكون مجاني وغادي يعطينا واحد العنو...


AN

كيفاش تصاوب تطبيق Top 10 Downloads ب Android

فهاد الدرس غادي نصابو مشروع بسيط بandroid عبارة عن تطبيق كيعرض قائمة أفضل عشر تطبيقات مجانية فمتجر آ...