<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های مهدی ام</title><link>https://virgool.ir/feed/@mehdi08</link><description>برنامه نویس اندروید هستم و میخوام با پروژه های کوچیک چیزایی که از اندروید بلدم رو یاد بدم  :)</description><language>fa</language><pubDate>2026-11-11 21:49:22</pubDate><image><url>https://files.virgool.ir/upload/users/26712/avatar/kMAHgT.png</url><title>مهدی ام</title><link>https://virgool.ir/@mehdi08</link></image><item><title>پنل کشویی با Picker چرخی - اندروید</title><link>https://virgool.ir/@mehdi08/پنل-کشویی-با-picker-چرخی-اندروید-unm4qmdnexnr</link><description>سلام عزیزان، چند وقت پیش یکی از دوستام برای طراحی یه همچین چیزی ازم کمک خواست تو یه پروژه مجزا انجامش دادم و گذاشتمش رو گیت هابم اگه به کارتون میاد میتونین ازش استفاده کنینhttps://github.com/mehdii08/BottomSlideWithPickersliding up panel layout with easy picker viewدوست دارم به دوستام کمک کنم. اگر تو زمینه ای که بلدم سوالی داشتین در خدمتم :)</description><category>مهدی ام</category><author>مهدی ام</author><pubDate>Sun, 03 May 2020 20:04:09 +0430</pubDate></item><item><title>ماشین حساب خیلیییی ساده - اندروید</title><link>https://virgool.ir/@mehdi08/mysimplecalculator-bxlvktlyjewl</link><description>android studioسلام ان شا الله که حال دلتون خوب باشهتصمیم دارم جلسات انتقال تجربه ی خودمو که تو دانشگاه در قالب ۱۰ جلسه به صورت پروژه های کوچیک قرار بود انجام بدم رو اینجا هم بزارم تا شاید کمکی کرده باشم. قراره از کارای خیلی ساده شروع کنم و به یه سطح معمولی برسیم.این پروژه خیلی ساده و کوچیکه. ۴ تا عمل اصلی رو داره ولی قراره یه ماشین حساب خوشگل تر هم درست کنیم. پس اینو میزارم اینجا تا چند روز بعد یه ماشین حساب خوشگل تر هم بهش اضافه بشه.تصمیم دارم جلسات انتقال تجربه ی خودمو که تو دانشگاه در قالب ۱۰ جلسه به صورت پروژه های کوچیک قرار بود انجام بدم رو اینجا هم بزارم تا شاید کمکی کرده باشم. قراره از کارای خیلی ساده شروع کنم و به یه سطح معمولی برسیمدر ضمن میتونین سورس کد رو از گیت هاب بگیرینhttps://github.com/mehdii08/MySimpleCalculatorفایل اول  activity_main.xml هست:&lt;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&gt;&#xA;&lt;LinearLayout xmlns:android=&#34;http://schemas.android.com/apk/res/android&#34;&#xA;    xmlns:tools=&#34;http://schemas.android.com/tools&#34;&#xA;    android:layout_width=&#34;match_parent&#34;&#xA;    android:layout_height=&#34;match_parent&#34;&#xA;    android:gravity=&#34;center&#34;&#xA;    android:orientation=&#34;vertical&#34;&#xA;    tools:context=&#34;.MainActivity&#34;&gt;&#xA;    &#xA;    &lt;LinearLayout&#xA;        android:layout_width=&#34;wrap_content&#34;&#xA;        android:layout_height=&#34;wrap_content&#34;&#xA;        android:orientation=&#34;horizontal&#34;&gt;&#xA;&#xA;        &lt;EditText&#xA;            android:id=&#34;@+id/operand1&#34;&#xA;            android:layout_width=&#34;wrap_content&#34;&#xA;            android:layout_height=&#34;wrap_content&#34;&#xA;            android:hint=&#34;op1&#34;&#xA;            android:inputType=&#34;number&#34;&#xA;            android:textSize=&#34;30sp&#34; /&gt;&#xA;&#xA;        &lt;TextView&#xA;            android:id=&#34;@+id/operator&#34;&#xA;            android:layout_width=&#34;wrap_content&#34;&#xA;            android:layout_height=&#34;wrap_content&#34;&#xA;            android:hint=&#34;+&#34;&#xA;            android:textSize=&#34;30sp&#34; /&gt;&#xA;&#xA;        &lt;EditText&#xA;            android:id=&#34;@+id/operand2&#34;&#xA;            android:layout_width=&#34;wrap_content&#34;&#xA;            android:layout_height=&#34;wrap_content&#34;&#xA;            android:hint=&#34;op2&#34;&#xA;            android:inputType=&#34;number&#34;&#xA;            android:textSize=&#34;30sp&#34; /&gt;&#xA;&#xA;        &lt;TextView&#xA;            android:layout_width=&#34;wrap_content&#34;&#xA;            android:layout_height=&#34;wrap_content&#34;&#xA;            android:hint=&#34;=&#34;&#xA;            android:textSize=&#34;30sp&#34; /&gt;&#xA;&#xA;        &lt;TextView&#xA;            android:id=&#34;@+id/result&#34;&#xA;            android:layout_width=&#34;wrap_content&#34;&#xA;            android:layout_height=&#34;wrap_content&#34;&#xA;            android:hint=&#34;result&#34;&#xA;            android:textSize=&#34;30sp&#34; /&gt;&#xA;&#xA;    &lt;/LinearLayout&gt;&#xA;&#xA;    &lt;LinearLayout&#xA;        android:layout_width=&#34;wrap_content&#34;&#xA;        android:layout_height=&#34;wrap_content&#34;&#xA;        android:layout_marginTop=&#34;30sp&#34;&#xA;        android:orientation=&#34;horizontal&#34;&gt;&#xA;&#xA;        &lt;androidx.appcompat.widget.AppCompatButton&#xA;            android:id=&#34;@+id/sum&#34;&#xA;            android:layout_width=&#34;80sp&#34;&#xA;            android:layout_height=&#34;80sp&#34;&#xA;            android:layout_marginRight=&#34;20sp&#34;&#xA;            android:=&#34;sum&#34;&#xA;            android:text=&#34;+&#34;&#xA;            android:textSize=&#34;20sp&#34; /&gt;&#xA;&#xA;        &lt;androidx.appcompat.widget.AppCompatButton&#xA;            android:id=&#34;@+id/subtraction&#34;&#xA;            android:layout_width=&#34;80sp&#34;&#xA;            android:layout_height=&#34;80sp&#34;&#xA;            android:=&#34;subtraction&#34;&#xA;            android:text=&#34;-&#34;&#xA;            android:textSize=&#34;20sp&#34; /&gt;&#xA;&#xA;    &lt;/LinearLayout&gt;&#xA;&#xA;    &lt;LinearLayout&#xA;        android:layout_width=&#34;wrap_content&#34;&#xA;        android:layout_height=&#34;wrap_content&#34;&#xA;        android:layout_marginTop=&#34;20sp&#34;&#xA;        android:orientation=&#34;horizontal&#34;&gt;&#xA;&#xA;        &lt;androidx.appcompat.widget.AppCompatButton&#xA;            android:id=&#34;@+id/multiplication&#34;&#xA;            android:layout_width=&#34;80sp&#34;&#xA;            android:layout_height=&#34;80sp&#34;&#xA;            android:layout_marginRight=&#34;20sp&#34;&#xA;            android:=&#34;multiplication&#34;&#xA;            android:text=&#34;*&#34;&#xA;            android:textSize=&#34;20sp&#34; /&gt;&#xA;&#xA;        &lt;androidx.appcompat.widget.AppCompatButton&#xA;            android:id=&#34;@+id/division&#34;&#xA;            android:layout_width=&#34;80sp&#34;&#xA;            android:layout_height=&#34;80sp&#34;&#xA;            android:=&#34;division&#34;&#xA;            android:text=&#34;/&#34;&#xA;            android:textSize=&#34;20sp&#34; /&gt;&#xA;&#xA;    &lt;/LinearLayout&gt;&#xA;    &#xA;&lt;/LinearLayout&gt;فایل بعدی  MainActivity.java هست: import androidx.appcompat.app.AppCompatActivity;&#xA;import androidx.appcompat.widget.AppCompatButton;&#xA;&#xA;import android.media.Image;&#xA;import android.os.Bundle;&#xA;import android.view.View;&#xA;import android.widget.EditText;&#xA;import android.widget.ImageView;&#xA;import android.widget.TextView;&#xA;import android.widget.Toast;&#xA;&#xA;public class MainActivity extends AppCompatActivity {&#xA;&#xA;    private EditText operand1, operand2;&#xA;    private TextView operator, result;&#xA;&#xA;    @Override&#xA;    protected void onCreate(Bundle savedInstanceState) {&#xA;        super.onCreate(savedInstanceState);&#xA;        setContentView(R.layout.activity_main);&#xA;&#xA;        init();&#xA;&#xA;    }&#xA;&#xA;    private void init() {&#xA;&#xA;        operand1 = findViewById(R.id.operand1);&#xA;        operand2 = findViewById(R.id.operand2);&#xA;        operator = findViewById(R.id.operator);&#xA;        result = findViewById(R.id.result);&#xA;&#xA;    }&#xA;&#xA;    public void sum(View view) {&#xA;&#xA;        if (operand1.getText().toString().isEmpty()) {&#xA;&#xA;            Toast.makeText(this, &#34;op1 is empty&#34;, Toast.LENGTH_SHORT).show();&#xA;&#xA;        } else if (operand2.getText().toString().isEmpty()) {&#xA;&#xA;            Toast.makeText(this, &#34;op2 is empty&#34;, Toast.LENGTH_SHORT).show();&#xA;&#xA;        } else {&#xA;&#xA;            int a = Integer.parseInt(operand1.getText().toString());&#xA;            int b = Integer.parseInt(operand2.getText().toString());&#xA;            int result = a + b;&#xA;&#xA;            this.operator.setText(&#34;+&#34;);&#xA;            this.result.setText(String.valueOf(result));&#xA;&#xA;        }&#xA;&#xA;    }&#xA;&#xA;    public void subtraction(View view) {&#xA;&#xA;        if (operand1.getText().toString().isEmpty()) {&#xA;&#xA;            Toast.makeText(this, &#34;op1 is empty&#34;, Toast.LENGTH_SHORT).show();&#xA;&#xA;        } else if (operand2.getText().toString().isEmpty()) {&#xA;&#xA;            Toast.makeText(this, &#34;op2 is empty&#34;, Toast.LENGTH_SHORT).show();&#xA;&#xA;        } else {&#xA;&#xA;            int a = Integer.parseInt(operand1.getText().toString());&#xA;            int b = Integer.parseInt(operand2.getText().toString());&#xA;            int result = a - b;&#xA;&#xA;            this.operator.setText(&#34;-&#34;);&#xA;            this.result.setText(String.valueOf(result));&#xA;&#xA;        }&#xA;&#xA;    }&#xA;&#xA;    public void multiplication(View view) {&#xA;&#xA;        if (operand1.getText().toString().isEmpty()) {&#xA;&#xA;            Toast.makeText(this, &#34;op1 is empty&#34;, Toast.LENGTH_SHORT).show();&#xA;&#xA;        } else if (operand2.getText().toString().isEmpty()) {&#xA;&#xA;            Toast.makeText(this, &#34;op2 is empty&#34;, Toast.LENGTH_SHORT).show();&#xA;&#xA;        } else {&#xA;&#xA;            int a = Integer.parseInt(operand1.getText().toString());&#xA;            int b = Integer.parseInt(operand2.getText().toString());&#xA;            int result = a * b;&#xA;&#xA;            this.operator.setText(&#34;*&#34;);&#xA;            this.result.setText(String.valueOf(result));&#xA;&#xA;        }&#xA;&#xA;    }&#xA;&#xA;    public void division(View view) {&#xA;&#xA;        if (operand1.getText().toString().isEmpty()) {&#xA;&#xA;            Toast.makeText(this, &#34;op1 is empty&#34;, Toast.LENGTH_SHORT).show();&#xA;&#xA;        } else if (operand2.getText().toString().isEmpty()) {&#xA;&#xA;            Toast.makeText(this, &#34;op2 is empty&#34;, Toast.LENGTH_SHORT).show();&#xA;&#xA;        } else if (Integer.parseInt(operand2.getText().toString()) == 0) {&#xA;&#xA;            Toast.makeText(this, &#34;division by zero&#34;, Toast.LENGTH_SHORT).show();&#xA;&#xA;        } else {&#xA;&#xA;            int a = Integer.parseInt(operand1.getText().toString());&#xA;            int b = Integer.parseInt(operand2.getText().toString());&#xA;            int result = a / b;&#xA;&#xA;            this.operator.setText(&#34;/&#34;);&#xA;            this.result.setText(String.valueOf(result));&#xA;&#xA;        }&#xA;&#xA;    }&#xA;    &#xA;}خب حالا میتونین اجراش کنین. خروجی مثل تصویر پایین میشهsimple calculatorمیدونم خیلی سادس ولی این برای اون دوستانی هست که دفعات اولشونه با اندروید استودیو کار میکنن. ان شا الله تو پستای بعدی پروژه های پیچیده تری رو هم با هم کار میکنیم.</description><category>مهدی ام</category><author>مهدی ام</author><pubDate>Sun, 05 Apr 2020 22:05:23 +0430</pubDate></item></channel></rss>