توی این قسمت آموزشی می خوام با استفاده از ادیت تکست یه عددی رو بگیرم و سپس اون رو به سلسیوس یا فارنهایت تبدیل کنیم
ابتدا لایه xml رو طراحی می کنیم :
<?xml version="1.0" encoding="utf-8"?> <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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.shadow.hadi.tempconvert.MainActivity"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="number" android:ems="10" android:id="@+id/editText" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="45dp" android:hint="Enter temp"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="C" android:id="@+id/button" android:layout_below="@+id/editText" android:layout_alignParentStart="true" android:layout_marginTop="68dp"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="F" android:id="@+id/button2" android:layout_alignBottom="@+id/button" android:layout_alignParentEnd="true"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="" android:textSize="30sp" android:id="@+id/textView" android:layout_below="@+id/button" android:layout_centerHorizontal="true" android:layout_marginTop="113dp"/> </RelativeLayout>
سپس کدهای مربوط به اکتیویتی اصلی رو می نویسیم :
public class MainActivity extends AppCompatActivity { //تعریف تکست ویوو و دکمه و ادیت تکست private EditText edtTemp; private Button btnC; private Button btnF; private TextView txtTemp; DecimalFormat round = new DecimalFormat("0.0"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // [°F] = [°C] × 9⁄5 + 32 // [°C] = ([°F] − 32) × 5⁄9 // وصل کردن به لایه xml edtTemp = (EditText) findViewById(R.id.editText); btnC = (Button) findViewById(R.id.button); btnF = (Button) findViewById(R.id.button2); txtTemp = (TextView) findViewById(R.id.textView); // وقتی روی دکمه کلیک شد btnC.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //گرفتن مقدار ادیت تکست String edtValue = edtTemp.getText().toString(); //اکر داخل ادیت تکست خالی بود if (edtValue.isEmpty()) { Toast.makeText(MainActivity.this, "Enter a temp ", Toast.LENGTH_SHORT).show(); } else { // تبدیل مقدار داخل ادیت تکست به دابل متغییر اعشاری Double edtDouble = Double.parseDouble(edtValue); // تبدیل مقدار وارد شده به فارنهایت با استفاده از متد تبدیل سلسیوس به فارنهایت String finalResult = String.valueOf(round.format(tempConvertedToC(edtDouble))); // مقدار دهی به تکست ویوو txtTemp.setText(finalResult); } } }); // وقتی روی دکمه کلیک شد btnF.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String edtValue = edtTemp.getText().toString(); if (edtValue.isEmpty()) { Toast.makeText(MainActivity.this, "Enter a temp ", Toast.LENGTH_SHORT).show(); } else { Double edtDouble = Double.parseDouble(edtValue); String finalResult = String.valueOf(round.format(tempConvertedToF(edtDouble))); txtTemp.setText(finalResult); } } }); } // متد تبدیل فارنهایت به سلسیوس public double tempConvertedToC(double tf) { double convertedToC; convertedToC = (tf - 32) * 5 / 9; return convertedToC; } // متد تبدیل سلسیوس به فارنهایت public double tempConvertedToF(double tc) { double convertdToF; convertdToF = (tc * 9 / 5) + 32; return convertdToF; } }
نمای پروژه :
لینک دانلود سورس پروژه : دانلود